实时音视频
  • iOS
  • Android
  • macOS
  • Windows
  • HarmonyOS
  • Linux
  • Web : JavaScript
  • 小程序
  • Flutter
  • Electron
  • Unity3D
  • Cocos2D
  • React Native
  • uni-app
  • 产品简介
  • 下载
  • 体验 App
  • 快速开始
    • 跑通示例源码
    • 集成 SDK
    • 实现视频通话
  • 基础功能
  • 进阶功能
  • 最佳实践
  • 常见错误码
  • 服务端 API
  • 客户端 API
  • 常见问题

发布日志

更新时间:2022-05-11 18:40

2.16.0 版本

发布日期:2022-05-11

新增功能

1. 新增发送 SEI 功能

SEI(媒体补充增强信息) 是 H.264 编码视频中的补充增强信息(例如文本信息),用于视频通话时在视频流中附带一些信息传递给对端,可以做到画面和附加信息精准对齐。常用于直播答题、歌词同步等场景。

开发者推流成功后可以调用 sendSEI 接口发送 SEI 信息,对端在拉流时接收到推流端发送的 SEI 信息之后会触发 playerRecvSEI 回调。

相关 API 请参考 sendSEIsetSEIConfigplayerRecvSEIstartPublishingStreamstartPlayingStream

2. 新增房间状态变化通知 roomStateChanged

当房间的连接状态发生变化时会触发 roomStateChanged 回调,通过“ZegoRoomStateChangedReason” 参数提供更加详细的连接状态及状态变化原因。

2.16.0 及以上版本推荐使用 roomStateChanged 回调来替代 roomStateUpdate 回调监听房间状态变化。

相关 API 请参考 loginRoomlogoutRoomroomStateChanged

改进优化

1. 设置音视频配置接口、混音功能相关接口以及音效播放器 ZegoAudioEffectPlayer 实例的方法都支持在推流成功前的预览阶段调用

设置音视频配置接口 setVideoConfigsetAudioConfig 从版本开始支持在预览阶段调用,可以在推流成功前修改视频的分辨率、帧率、码率、音频 3A 等参数。

混音功能相关接口 startMixingAudiostopMixingAudio 和 setMixingAudioVolume 从版本开始支持在预览阶段调用。

音效播放器 ZegoAudioEffectPlayer 实例的方法,例如 startstoppause 等,从此版本开始,支持在预览阶段调用。

以上接口在 2.15.0 及之前版本都只支持推流成功后调用。

相关 API 请参考 setVideoConfigsetAudioConfigstartMixingAudiostopMixingAudiosetMixingAudioVolumeZegoAudioEffectPlayer

问题修复

  1. 修复了调用 setAudioConfig 接口会导致 setCaptureVolume 接口设置音量失效的问题。
  2. 修复了调用 loginRoom 接口传入的 Token 错误时,没有触发 roomStateUpdate 状态回调(此时状态应该为 “DISCONNECT” )的问题。
  3. 修复了火狐浏览器推流调用 mutePublishStreamVideo 关闭视轨时,拉流端画面会卡最后一帧,持续 1s ~ 3s 之后才关闭画面的问题。
  4. 修复了使用剩余有效期超过 2147483647ms 的 Token 进行登录会立即触发 tokenWillExpire 事件回调的问题。


2.15.1 版本

发布日期:2022-04-14

问题修复

1. 修复已知问题



2.15.0 版本

发布日期:2022-04-08

新增功能

1. 新增音效文件播放器功能

音效是指为了增强真实感或者烘托场景氛围播放的简短效果音,例如:在直播期间播放掌声、礼物音效、提示音等;在游戏中,播放子弹声、碰撞打击声。 ZegoExpress SDK 提供音效文件播放器,通过 ZegoAudioEffectPlayer 统一管理媒体流上的音效,支持音效播放(可以多音效重叠播放)、播放控制(如暂停播放、音量调节、设置播放进度)、预加载音效等功能。详情请参考 音效文件播放器

相关 API 请参考 createAudioEffectPlayerloadAudioEffectunloadAudioEffect

2. 支持开启或关闭摄像头采集功能

创建摄像头媒体流后,调用 enableVideoCaptureDevice 接口,通过设置 “enable” 参数来开启或关闭摄像头采集功能。例如主播在某一时段不希望被拉流端看到摄像头画面,也不希望摄像头设备一直被占用时,可以设置为关闭。

相关 API 请参考 enableVideoCaptureDevice

3. 支持主动获取推流质量和拉流质量

开发者可以主动获取推流和拉流质量(包括分辨率、帧率、码率等),用于了解当前流的质量状态,从而进行 UI 展示等相关的业务操作。 推流成功后,调用 getPublishingStreamQuality 接口可以主动获取正在推流的流质量。拉流成功后,调用 getPlayingStreamQuality 接口可以主动获取正在拉流的流质量。

相关 API 请参考 getPublishingStreamQualitygetPlayingStreamQuality

4. 支持设置指定的扬声器播放声音

通过 getSpeakers 接口获取音频输出设备列表后,调用 useAudioOutputDevice 接口,设置媒体标签元素(<audio> 或 <video>),并传入deviceID (通过 getSpeakers 接口获取),使用相应的扬声器设备进行播放。

相关 API 请参考 useAudioOutputDevice

5. 支持摄像头关闭时推送静态图片

关闭摄像头时,支持持续推送 JPEG/JPG、PNG 等格式的静态图片。例如,主播退后台时,会主动关闭摄像头,此时观众侧需要展示主播暂时离开的图片。 初始化 SDK 后,关闭摄像头之前通过 setDummyCaptureImagePath 接口设置所推静态图片的路径,开始正常推流后,调用 mutePublishStreamVideo 接口关闭摄像头时会开始推静态图片,调用 mutePublishStreamVideo 接口打开摄像头时会结束推静态图片。

相关 API 请参考 setDummyCaptureImagePathmutePublishStreamVideo

改进优化

1. 支持登录和拉流并行操作

支持登录和拉流并行操作,即调用 loginRoom 接口后可以立即调用 startPlayingStream 接口(需指定流 ID),用于实现更快的拉流播放效果。

2. 新增 1001004 错误码

当 AppID 不正确时,会抛出 1001004 错误码,表示认证失败。此时需要检查传入的 AppID 是否与 ZEGO 控制台中的 AppID 是否一致。

3. 新增 1002036 错误码

多房间功能未开通时,调用 loginRoom 接口会抛出 1002036 错误码,表示登录失败,请联系 ZEGO 技术支持开该功能。

4. 新增 1101002 错误码

当获取流媒体配置失败时,会抛出 1101002 错误码,请联系 ZEGO 技术支持。

5. 新增 1104039 错误码

调用 startPlayingStream 时传入的 “streamID” 不存在时,会抛出 1104039 错误码,请确认 “streamID” 是否正确。

6. 开启音浪回调接口支持隐藏页面时停止获取音浪

调用 setSoundLevelDelegate 接口时,通过 “options.enableInBackground” 参数可以设置页面隐藏时是否保持开启获取音浪和回调音浪,默认保持开启,当关闭时(即 “options.enableInBackground” 设置为 “false”),  SDK 在页面隐藏时会关闭获取音浪以减少性能消耗。

相关 API 请参考 setSoundLevelDelegate

7. 支持修改推流的视频质量等级

调用 setVideoConfig 接口可以动态修改推流的视频质量等级 “videoQuality”。

相关 API 请参考 setVideoConfig

问题修复

  1. 修复了创建纯摄像头视频流但没有采集麦克风时,也会触发采集音浪回调的问题。
  2. 修复了使用火狐浏览器推流时,推流质量报文中 “audio.AudioFPS“ 的值显示为 NaN 的问题。


2.14.0 版本

发布日期:2022-03-09

新增功能

1. 支持获取所需媒体设备列表

新增 [getCameras] 接口用于获取视频输入设备列表、[getMicrophones] 用于获取音频输入设备列表、[getSpeakers] 用于获取音频输出设备列表。与 [enumDevices] 接口不同点为:以上 3 个新增获取媒体设备列表会在页面没有授予设备权限时,调用接口会弹出对应设备权限获取的提示框,不需要提前调用 [createStream] 或 [checkSystemRequirement]。

相关 API 请参考 getCamerasgetMicrophonesgetSpeakersenumDevices

  • 由于浏览器对安全和隐私的保护,页面需要在安全环境下(https,localhost,127.0.0.1)调用 [getCameras]、[getMicrophones]、[getSpeakers] 接口,隐私保护协议请参考 Privacy and security

  • 在没有授予页面设备权限的情况下,调用 [getCameras] 接口会暂时打开摄像头/[getMicrophones] 接口会暂时打开麦克风,以触发浏览器的摄像头和麦克风设备权限申请。在 Chrome 81+、Firefox、 Safari 等浏览器上,没有媒体设备权限时无法获取到准确的设备信息。

改进优化

1. loginRoomrenewToken 接口支持使用 “token04” 版本的 Token

问题修复

  1. 修复了拉流设置只拉视频不拉音频时,浏览器获取不到音频相关的质量参数 totalSamplesReceived 导致 SDK 报错的问题。

  2. 修复了开启美颜还未生效的情况下,开始推流会被阻止并抛出错误码 1103073 提示开发者在美颜启动过程中不能推流。

  3. 修复了在 setCaptureVolume 后推纯视频流,麦克风状态变为 true 的问题。

  4. 修复了通过用户服务器调用 RTC 服务端 API 下发房间附加消息,发送端触发了用户发送的房间附加消息回调的问题。

  5. 修复了在 2.13.0 版本上,美颜开启完成前,调用 startPublishingStream 推流接口概率出现意义不明的报错问题。在 2.14.0 版本上,美颜开启完成前,就调用 startPublishingStream 会抛出错误码 1103073 提示推流调用时机错误。

  6. 修复了 SDK 停止推拉流后,会出现 websocket 相关的日志报错信息。



2.13.0 版本

发布日期:2022-01-11

新增功能

1. 新增基础美颜功能

ZEGO 提供基础美颜功能,为用户呈现出良好的肌肤状态,打造自然的美颜效果。开发者可以在 createStream 获取到媒体流后,调用 setEffectsBeauty 接口调整美白、磨皮、锐化以及红润的程度,实现基础美颜能力。

该功能常用于视频通话、直播等场景。

相关 API 请参考 setEffectsBeauty

问题修复

  1. 修复了在开始推流到推流成功后去调用 mutePublishStreamAudiomutePublishStreamVideouseVideoDeviceuseAudioDevice 接口时,会抛出错误信息的问题。

  2. 修复了在 iOS 15.1 版本的 Safari 浏览器上推流时页面自动刷新导致无法正常使用的问题。

    SDK 使用 canvas 采集的方案规避了该问题,该规避方案性能开销相对会更大些。出于性能的考虑,建议在 iOS 15.1 采集推流质量不宜过高。iOS 已在 15.2 版本修复该问题。

  3. 修复了推流过程中调用 mutePublishStreamAudio 接口关闭音频后,再调用 setAudioConfig 接口修改推流音频参数时,音频会自动恢复为打开的问题。

  4. 修复了在没有配置 Token 过期管理机制的情况下,调用 renewToken 接口无法更新 Token 的问题。



2.12.3 版本

发布日期:2021-12-06

改进优化

1. 为了避免由于低版本浏览器的兼容性问题导致推拉流失败,此版本开始默认不开启实时有序数据传送功能

问题修复

  1. 修复了弱网场景下用户列表可能不更新的问题
  2. 修复了火狐浏览器其它已知问题


2.12.2 版本

发布日期:2021-11-23

新增功能

1. 新增实时有序数据功能

开发者在需要做远程控制、云游戏等指令分发时,通过实时有序数据,可以低延迟获取发布端消息。

新增 [createRealTimeSequentialDataManager] 接口,调用该接口后返回实时有序数据实例对象,该实例支持提供开始广播(startBroadcasting)、停止广播(stopBroadcasting)、发送实时数据(sendRealTimeSequentialData)、开始订阅(startSubscribing)、停止订阅(stopSubscribing)功能。

相关 API 请参考 createRealTimeSequentialDataManager, startBroadcasting, stopBroadcasting, sendRealTimeSequentialData, startSubscribing, stopSubscribing

问题修复

  1. 2.11.0 版本在一个浏览器页面使用多个 ZegoExpressEngine 实例的场景下,会出现异常。该版本修复了此问题。
  2. 由于浏览器自动播放策略的限制,在无页面交互的情况下进行拉流后,通过手动点击播放后有声音但获取流的音浪回调仍一直为 0 的问题。该版本修复了此问题,在页面进行点击操作后能正常获取拉流的音浪回调。


2.12.1 版本

发布日期:2021-11-18

问题修复

  1. 修复已知问题


2.11.3 版本

发布日期:2021-11-04

问题修复

  1. 修复了 2.11.0 版本声明文件缺失,导致使用 TypeScript 引入 SDK 出现类型校验报错


2.11.2 版本

发布日期:2021-11-02

问题修复

  1. 修复了 2.11.0 版本中使用了 ES6 语法的代码导致部分打包工具压缩代码有兼容性问题的情况
  2. 修复了当流的视频和音频都是开启状态时,拉流成功后没有触发 remoteCameraStatusUpdateremoteMicStatusUpdate 回调的问题


2.11.1 版本

发布日期:2021-10-28

问题修复

  1. 修复了调用 muteMicrophone 接口时,会向对端发送错误的摄像头状态的问题


2.11.0 版本

发布日期:2021-10-15

新增功能

1. 支持按场景设置清晰优先和流畅优先

不同场景下对视频体验有不同的需求时,可以根据需要在推流端设置不同的推流模式。

createStream 接口中新增 camera.videoOptimizationMode 、screen.videoOptimizationMode 和 custom.videoOptimizationMode 参数,分别用于设置摄像头、屏幕共享、自定义采集视频的推流模式。三者均可传 default、detail 、motion ,分别表示默认(即同时兼顾清晰度和流畅性)、清晰优先、流畅优先,默认值为 default。

  • 选择清晰优先,在大多数情况下,SDK 不会降低发送分辨率,但可能会降低帧率。

  • 选择流畅优先,在大多数情况下,SDK 不会降低帧率,但可能会降低发送分辨率。

  • 选择两者同时兼顾可能会同时降低帧率和分辨率。

相关 API 请参考 createStream

2. 新增 Token 过期管理机制

使用此功能需要升级 SDK 并联系 ZEGO 技术支持配置。

不同的业务场景,对用户登录房间、推流等权限有时效限制,可以通过 Token 来实现。

当 Token 过期后,服务端会主动将用户的权限进行回收,客户端的用户会被踢出房间并停止推流。该机制可以使用户权限管理更安全,常用于 KTV、语聊房场景。

相关 API 请参考 renewToken, tokenWillExpire

3. 混流支持设置视频渲染模式

在进行混流时,可以对每一条流进行渲染模式的设置。当混流输入流的分辨率比例与对应输入流在混流输出画面上的布局比例不一致时,可以按照不同的业务场景,选择不同的渲染模式。

可通过 startMixerTask 接口的 mixStreamConfig.inputList[].renderMode 参数设置混流输入视频画面的渲染模式,值为 0 表示填充模式,1 表示适应模式,默认为填充模式。

相关 API 请参考 startMixerTask

改进优化

1. 新增 1103064、1103065 和 1103066 错误码

通过 createStream 采集不到设备的音视频,当创建流出现错误时,新增错误码 1103064、1103065 和 1103066,分别标识“没有设备权限” 、“设备不用于采集”、“设备参数错误”。

相关 API 请参考 createStream

2. 拉流质量回调新增端到端延迟和端到端丢包率的数据

拉流质量回调接口 playQualityUpdate 中的 stats 参数新增 peerToPeerPacketLostRate 和 peerToPeerDelay,分别标识 “端到端丢包率”、“端到端延迟”。

相关 API 请参考 playQualityUpdate

问题修复

  1. 修复了多房间模式下,一个房间被服务端 kickout 时触发所有房间都退出的问题
  2. 修复了重试拉流时会出现卡顿的问题


2.10.1 版本

发布日期:2021-09-03

问题修复

  1. 修复已知问题


2.10.0 版本

发布日期:2021-08-27

新增功能

1. 新增范围语音功能模块

新增范围语音功能模块,可提供范围语音、3D音效、小队语音等功能。适用于吃鸡类游戏、元宇宙类场景。

范围语音:是指房间内的收听者对音频的接收距离有范围限制,若发声者与自己的距离超过该范围,则无法听到声音。为保证语音清晰,附近超过 发布日期:20 人发声时,只能听到离自己最近的 20 个发声者的声音。

3D音效:声音有 3D 空间感且按距离衰减。

小队语音:玩家可以选择加入小队,并支持在房间内自由切换“全世界”模式和“仅小队”模式。

相关 API 请参考 createRangeAudioInstance, ZegoExpressRangeAudio, setAudioReceiveRange, updateSelfPosition, updateAudioSource, enableSpatializer, enableMicrophone, enableSpeaker, setRangeAudioMode, setTeamID

改进优化

1. 提高 SDK 在网络切换时的抗弱网能力

SDK 内部重试逻辑优化,在网络切换时提高用户体验。

问题修复

  1. 修复了推流端移除正在推流的外接摄像头时,调用 useVideoDevice 接口切换其他摄像头设备后拉流端 remoteCameraStatusUpdate 事件中设备状态最终为 “CLOSE”,没有恢复为 “OPEN” 的问题


2.9.1 版本

发布日期:2021-08-12

问题修复

  1. 修复了小部分不支持同时打开两个摄像头的设备在切换麦克风失败重试时,会导致视频画面黑屏的问题


2.9.0 版本

发布日期:2021-08-09

改进优化

1. 新增对混流接口中的 inputList[].streamID 参数取值进行校验

调用 startMixerTask 接口时,如果 inputList[].streamID 参数取值为 null 或 undefined,则会报错提示输入参数错误。

相关 API 请参考 startMixerTask

2. 支持推流成功前调用 replaceTrack 接口替换媒体流的音视频轨道

2.9.0 之前的 SDK 版本中,只能在推流前或者推流成功后调用 replaceTrack 接口,在推流未完成之前调用则会报错并提示不支持调用该接口。

2.9.0 SDK 版本优化为可以在推流成功前调用 replaceTrack 接口替换音视频轨道。

相关 API 请参考 replaceTrack

3. 推流端关闭视频画面后再开启时,拉流端不再依赖媒体信令来恢复画面

2.9.0 之前的 SDK 版本中,推流端的推流画面关闭时,流状态信令可能因为网络断开而丢失,导致无法通过信令及时通知到拉流端恢复画面。

2.9.0 SDK 版本优化为通过流数据而不再依赖媒体信令来恢复视频画面,避免弱网情况出现无法恢复视频画面的问题。

问题修复

  1. 修复了推流后通过 useAudioDeviceuseVideoDevice 接口切换外接摄像头或麦克风设备,硬件层面断开与外接设备的连接时没有触发 deviceError 回调的问题

  2. 修复了通过 createStream 创建第三方流时 custom.source 参数传 MediaStream 后设置开始码率快速上升没有生效的问题

  3. 修复了当使用外接麦克风和摄像头进行推流时拔出设备,上报的摄像头状态没有变为关闭状态的问题



2.8.0 版本

发布日期:2021-07-09

新增功能

1. 支持开启/关闭麦克风声音,并获取麦克风开启/关闭状态

当开发者不希望被拉流端听到麦克风声音时,可以通过 muteMicrophone 接口的 “enable” 参数来设置是否开启麦克风声音,“true” 表示关闭麦克风(即静音),“false” 表示打开麦克风。该接口可以开启或关闭当前引擎实例创建的所有麦克风的媒体流的声音,不会影响其他声音(例如背景音乐的播放)。

调用 isMicrophoneMuted 接口可以获取当前引擎实例的麦克风开启/关闭状态。

相关 API 请参考 muteMicrophoneisMicrophoneMuted

2. 新增多房间功能

需要联系 ZEGO 技术支持开通该功能。

同一个用户可以同时加入多个房间,并同时在多个房间内(目前默认最多同时加入 5 个房间)推流、拉流、发送实时消息和接收消息回调。本功能可以隔离多个房间的消息及回调,实现更灵活的连麦业务。ZEGO 推荐用于跨房间连麦和在线教育的超级小班场景。

需要在初始化 SDK 之后,登录房间前调用 enableMultiRoom 接口开启多房间,再调用 loginRoom 接口登录多房间,详情请参考 常用功能 - 多房间

相关 API 请参考 enableMultiRoomloginRoom

改进优化

1. 关闭正在推流画面时可选择保留预览画面

mutePublishStreamVideo 接口新增了 “retain” 参数,用于设置关闭推流画面时是否保留预览画面,“retain” 参数取值为 “true” 时表示保留,默认值为 “false”。

相关 API 请参考 mutePublishStreamVideo

2. 当 App 未配置低延迟直播功能却使用低延迟模式拉流时,新增报错提示

当 App 未配置低延迟直播功能时却使用低延迟模式拉流,则 SDK 会抛出 1104038 错误码,标识当前 AppID 不支持低延迟直播。

相关 API 请参考 startPlayingStream

问题修复

  1. 修复了断网时使用 Web 端推流会报错,但没有正常返回断网推流失败错误信息的问题
  2. 修复了推流时码率快速上升策略只对 H.264 编码方式生效,对 VP8 编码方式却不生效的问题


2.7.1 版本

发布日期:2021-06-10

新增功能

1. 新增获取本地音浪功能

on 接口新增 capturedSoundLevelUpdate 回调事件,该回调与推拉流音浪回调 soundLevelUpdate 的区别在于,capturedSoundLevelUpdate 可以在创建媒体流之后立即获取本地采集的音频音浪,即本地麦克风采集的音量大小,可用于检测麦克风声音是否正常。

相关 API 请参考 capturedSoundLevelUpdate

2. 支持设置推流的开始码率上升策略(仅 Chrome 有效)

createStream 接口中的 “source.camera” 、“source.screen” 和 “source.custom” 属性新增 “startBitrate” 参数,用于设置推流的开始码率上升策略。

由于浏览器的默认策略,推流的开始码率默认由 300 kbps 缓慢上升到目标码率,导致拉流端最初接收到的画面较模糊。开发者通过设置 “startBitrate” 参数的取值为 “target”,可以使推流的开始码率快速上升到已设置的目标码率。(当设置的目标码率过高而且网络状态差的情况下,推流视频可能会出现卡顿或花屏)

该功能只在未开启硬件加速的 Chrome 内核浏览器中有效。

相关 API 请参考 createStream

改进优化

1. 优化了推流过程中切换摄像头的逻辑

小部分手机设备不支持同时开启两个摄像头,导致摄像头切换过程中开启第二个摄像头时无法正常切换。SDK 新增了切换摄像头失败重试的逻辑,避免同时打开两个摄像头时出现错误。

2. 优化了混流服务接口 startMixerTask 的错误信息提示

调用混流接口 startMixerTask 后,混流服务端出错时抛出的错误携带提示信息 “extendedData”。

相关 API 请参考 startMixerTask

3. 新增 1003025 错误码,表示推流被禁止

当推流操作被 ZEGO 后台禁止时,在推流状态回调中会抛出 1003025 错误码,开发者可以通过该错误码做相应的业务提示。

相关 API 请参考 publisherStateUpdate

4. 优化了拉流端丢包时会出现花屏的问题

推流端开启硬件加速进行推流后,拉流端在丢包率较高时会出现花屏。SDK 对该问题进行了优化处理,仅在 Chrome 内核浏览器生效。

问题修复

  1. 修复了切换音频设备后,音浪回调返回的一直是 0 而不是新设备音浪的问题

由于 SDK 内部在切换音频设备后没有重新获取设备音浪,导致音浪一直为 0,当前版本已修复该问题。

  1. 修复了推流端关闭麦克风时,拉流质量报文中的 “audioMuteState” 没有变化的问题


2.6.0 版本

发布日期:2021-04-29

新增功能

1. 新增低延迟直播功能

低延迟直播专注于提供稳定可靠的直播服务,相比于标准视频直播产品,音画延迟更低,同步性更强,弱网抗性更好,能为用户带来毫秒级的直播体验。通常用于教育大班课、秀场直播、电商直播、一起看、在线拍卖等场景。

当开发者需要拉取低延迟直播流时,可通过设置拉流参数 “resourceMode” 为 “2”,选择拉取低延迟直播流,详情请参考 低延迟直播

相关 API 请参考 startPlayingStream

2. 新增 token 过期回调 tokenWillExpire 和 token 更新接口 renewToken

SDK 当前版本已支持该回调和接口,预计 2021-06-10 才可正式使用。

当 token 快要过期前的 30s SDK 会主动触发 tokenWillExpire 回调,开发者需要在收到该回调时,重新生成 token 并调用 renewToken 接口更新。

renewToken 接口常用于如下场景:

a. 当 token 过期时,通过该接口来更新 token。 b. 当开发者需要从登录权限切换到推流(含登录)权限,或者从推流(含登录)权限切换到只有登录权限时,可以通过该接口来实现。

相关 API 请参考 tokenWillExpirerenewToken

3. token 版本升级,支持 token 分功能鉴权

SDK 当前版本已支持该鉴权功能,但预计 2021-06-10 才可正式使用。

通过新版本 token 控制是否可登录,是否能推流,若想使用新版本 token 鉴权功能,请先联系 ZEGO 技术支持开启对应配置。

相关 API 请参考 tokenWillExpirerenewToken

改进优化

1. 优化了推拉流协商模式,减少推拉流首帧耗时

推拉流首帧耗时能在原有基础上缩短 150 ms 以上。

2. 优化了推拉流网络质量算法

进一步优化了推拉流网络质量的算法,提高推拉流质量回调中对 [videoQuality] 与 [audioQuality] 监听的准确性。

3. 增加节点质量探测

若检测到当前网络质量差则触发节点探测,SDK 会寻找质量更佳的推拉流节点进行切换,进一步提高抗弱网能力。

问题修复

  1. 修复已知问题


2.5.0 版本

发布日期:2021-04-15

问题修复

  1. 修复了切换摄像头时,原来的摄像头未被释放的问题

相关 API 请参考 useVideoDevice

  1. 修复其他已知问题


2.4.0 版本

发布日期:2021-04-01

改进优化

1. 优化检测接口,提高视频编码检测准确率,并支持单项检测

相关 API 请参考 checkSystemRequirements

2. 修改了设置日志时上传地址的优先级,使其优先级高于后台下发的地址

相关 API 请参考 setLogConfig

3. 优化了视频码率设置策略,解决了屏幕共享码率初始值较低的问题

相关 API 请参考 createStream

问题修复

  1. 修复了 Safari 使用部分蓝牙耳机播放音效时出现音质怪异的问题


2.3.0 版本

发布日期:2021-03-18

改进优化

1. 优化了推拉流网络质量评级逻辑,提高评估准确率

2. 支持纯视频流混音功能

相关 API 请参考 startMixingAudio

问题修复

  1. 修复了拉流后马上停止拉流时,出现报错的问题
  2. 修复了关闭摄像头后再开启时,推流卡顿的问题


2.2.1 版本

发布日期:2021-03-04

新增功能

1. 新增采集音量修改功能

调用麦克风采集音量接口,可以调节推流端的音量,让观众感受到音量变化。

相关 API 请参考 setCaptureVolume

2. 用户被踢出房间时,新增详细的踢出原因

房间成员被踢下线时,SDK 需要根据附加信息提示具体被踢下线的原因。

问题修复

  1. 修复了重复登录房间时无法感知房间重置,导致收不到流更新的问题


2.1.0 版本

发布日期:2021-01-28

问题修复

  1. 修复了 Windows 设备在 Chrome 浏览器开启硬件加速时,视频码率无法达到预期值的问题
  2. 修复了 PC 上的微信内置浏览器拉流一段时间后报错的问题


2.0.0 版本

发布日期:2021-01-14

改进优化

1. 代码重构,减少不同模块之间耦合性

2. 日志系统重构,优化了日志结构,提高问题定位效率

3. 重试逻辑重构,进一步提高 SDK 抗弱网能力



1.19.0 版本

发布日期:2020-12-31

新增功能

1. 新增动态设置是否拉取远端音频流和视频流的功能

开发者可以在拉流成功后,根据需要动态调整是否拉取音频流或视频流。

相关 API 请参考 mutePlayStreamVideo mutePlayStreamAudio

问题修复

  1. 修复了第三方流的音视频文件播放完成后,销毁流失败的问题

相关 API 请参考 destroyStream



1.18.0 版本

发布日期:2020-12-17

新增功能

1. 流更新回调新增扩展信息参数,例如:当流被删除时能够抛出相关原因信息

相关 API 请参考 roomStreamUpdate

2. 新增调节混音音量功能

支持动态调节推流时混入的背景音乐或音效的音量大小。

相关 API 请参考 setMixingAudioVolume

改进优化

1. 优化了 SDK 流媒体 websocket 连接等待时间

延长了推拉流重试过程中,websocket 连接超时的等待时间,提升连接成功率及抗弱网能力。

问题修复

  1. 修复了推流为纯音频的场景下,Safari 浏览器选择自动拉取模式时拉到的音频没有声音的问题

相关 API 请参考 setMixingAudioVolume



1.17.1 版本

发布日期:2020-12-03

问题修复

  1. 修复了静音后混音时,再次打开麦克风不能恢复麦克风声音的问题

相关 API 请参考 mutePublishStreamAudio

  1. 修复了推流重试过程中调用停止推流接口时,对端未能及时收到流删除通知的问题

相关 API 请参考 stopPublishingStream , roomStreamUpdate

  1. 修复了退出房间后快速重登房间时,对端可能收不到房间用户进出回调的问题

相关 API 请参考 loginRoom , roomUserUpdate



1.16.5 版本

发布日期:2020-11-26

问题修复

  1. 修复了网络重连成功后存在部分推拉流无法恢复正常使用的问题
  2. 修复了拉流端短时间内收到摄像头状态变更时可能状态不同步的问题


1.16.1 版本

发布日期:2020-11-23

问题修复

  1. 修复了弱网环境下推拉流可能调度失败的问题


1.16.0 版本

发布日期:2020-11-19

新增功能

1. 第三方流支持设置推流的音频声道数和码率

创建第三方流时根据视频文件中的音频声道数和码率设置当前推流音频的声道数和码率,避免可能出现的音质损耗问题。

相关 API 请参考 createStream

2. 新增支持动态修改推流音频参数

创建流并推流成功后,可以根据需要修改推流音频参数,包括降噪、自动增益控制和回声消除。

相关 API 请参考 setAudioConfig

3. 新增设备插拔回调

当监测到系统中有音视频设备添加或移除时,会触发 audioDeviceStateChanged videoDeviceStateChanged 回调。通过监听此回调,用户可以根据需要使用特定音视频设备进行数据采集。

相关 API 请参考 audioDeviceStateChanged , videoDeviceStateChanged

改进优化

1. 优化弱网情况下停止推流后,拉流端收不到流删除回调的问题

发送流新增及删除失败时进行重试,增加弱网等情况下的推流成功率。

2. 优化推流端关闭摄像头后重新打开时,拉流端可能拉不到视频画面的问题

问题修复

  1. 修复了在火狐浏览器上推流成功后刷新页面,再次输入相同房间号推流时拉不到流的问题


1.15.0 版本

发布日期:2020-11-05

改进优化

1. 优化 safari 浏览器使用混音功能时,麦克风采集声音质量差的问题

相关 API 请参考 startMixingAudio

2. 优化日志连接断开时报错信息

退出房间一分钟左右后日志 websocket 连接断开,不再显示 error 级别报错信息。

3. 优化 SDK 上报设备状态的日志,增加相应流 ID

问题修复

  1. 修复 sendCustomCommand 回调结果,删除了返回值中的 messageID
  2. 修复同一用户在其他平台登录导致从 web 平台下线时不触发 roomStateUpdate 的问题
  3. 修复相同用户 ID 登录房间时,房间内其他用户收到 roomUserUpdate 回调的问题


1.14.0 版本

发布日期:2020-10-15

新增功能

1. 推拉流质量回调中增加音频发送帧率

推拉流质量回调中增加音频发送帧率(audioFPS),用于展示当前音频流畅度。

相关 API 请参考 publishQualityUpdate , playQualityUpdate

2. 增加屏幕分享流的推流分辨率设置

创建屏幕共享流时若传入的 videoQuality 参数取值为 4,则开发者需要将帧率、码率和分辨率传给 SDK。

相关 API 请参考 createStream

3. 增加推流参数动态修改功能

支持在创建流并推流成功后通过 setVideoConfig 接口动态修改音视频流的分辨率(宽和高)、帧率和码率。

相关 API 请参考 setVideoConfig

改进优化

1. 重试逻辑优化及重构

优化及重构了音视频通话过程中出现异常时的重试逻辑,提高 SDK 抗弱网能力,减少业务侧重试。

2. 转推 CDN 时无需鉴权

优化增加转推 CDN 和删除转推 CDN 接口,去除鉴权,提高易用性。

相关 API 请参考 addPublishCdnUrl , removePublishCdnUrl

问题修复

  1. 修复错误码信息重复问题
  2. 修复其它已知问题


1.13.0 版本

发布日期:2020-09-24

新增功能

1. 新增替换音视频轨道

支持替换本地音视频流中的音视频轨道,例如可以在摄像头、屏幕共享或视频之间切换视频轨道,在麦克风和 mp3 之间切换音频轨道。

相关 API 请参考 replaceTrack

2. 新增可用性检测错误信息返回

当 SDK 检测到设备不可用时,支持返回对应的错误提示信息,展现具体的错误原因。

相关 API 请参考 checkSystemRequirements

改进优化

1. 优化推流状态回调错误码

优化了推流时因网络问题导致请求响应超时的时候返回的错误码值。

2. 增加接口数值参数的类型判断

对接口中是数值类型的参数作严格判断,只允许传入整数,避免出现错误。

相关 API 请参考 loginRoom , createStream , setSoundLevelDelegate , startMixerTask

问题修复

  1. 修复登录房间后更改日志配置导致日志事件上报缺失 roomid 的问题
  2. 修复其它已知问题


1.12.0 版本

发布日期:2020-09-10

新增功能

1. 新增房间附加消息功能

该功能可以设置一个以房间为单位的附加消息,该消息跟随整个房间的生命周期,每个登录到房间的用户都能够同步消息。开发者可用于实现各种业务逻辑,如房间公告等等。目前房间附加消息只允许设置一个键值对,且 key 最大长度为 10 字节,value 最大长度为 100 字节。

相关 API 请参考 setRoomExtraInfo

改进优化

1. 优化退出房间参数

简化了退出房间的参数设置,将 roomID 修改为可选参数,开发者退出房间时可以不设置 roomID。

相关 API 请参考 logoutRoom

2. 增加切换设备的时机

创建流并预览后,支持在推流前切换摄像头和麦克风设备。

相关 API 请参考 useVideoDevice , useAudioDevice

3. 增加创建流属性参数的类型判断

增加了创建流时设置的分辨率、码率、帧率等参数的类型判断,只允许传入正整数,避免出现不明报错信息。

相关 API 请参考 createStream

4. 优化回调注册事件处理

开发者在回调事件中若出现业务逻辑的错误未处理,SDK 会捕获该错误,避免影响 SDK 内部逻辑的运行。

相关 API 请参考 on

5. 推拉流相关日志增加服务连接节点,便于查询日志定位问题

6. 日志事件上报相关字段区分正式环境和测试环境,方便统计信息

问题修复

  1. 修复混流停止回调中调用退出房间可能报错的问题
  2. 修复其它已知问题


1.11.0 版本

发布日期:2020-08-27

新增功能

1. 新增房间当前人数回调

用户进入房间后,会定时(30秒)触发 roomOnlineUserCountUpdate 回调,通知当前房间人数,开发者可直接获取到人数值。

相关 API 请参考 roomOnlineUserCountUpdate

改进优化

1. 混流为纯音频时,优化参数设置

简化了混流的参数设置,当混流为纯音频时,布局等相关参数会设置成默认值,开发者无需关注参数如何设置。

相关 API 请参考 startMixerTask

2. 增加 streamExtraInfoUpdate 的触发时机

当用户进入房间,房间内有流且带有附加信息时,streamExtraInfoUpdate 将会回调,因此开发者只需关注此回调即可处理流附加信息的逻辑。

相关 API 请参考 streamExtraInfoUpdate

问题修复

  1. 修复其它已知问题


1.10.0 版本

发布日期:2020-08-13

新增功能

1. 新增支持双声道

提供双声道功能,该接口存在兼容问题,仅在 chrome 浏览器下支持。

相关 API 请参考 createStream

改进优化

1. 增加推流属性参数的类型判断

该优化增加了推流编码、流附加信息、备选参数的类型判断,避免出现不明报错信息。

相关 API 请参考 startPublishingStream

2. 优化媒体服务心跳

该优化旨在提升连接的稳定性,会根据媒体服务的心跳给出的参数,动态调节 SDK 向媒体服务发送心跳的间隔。

3. 推拉流相关日志增加流 ID , 便于查询日志定位问题

4. 推拉流上报可用带宽等信息,方便定位分辨率下降问题

5. 推流质量回调中增加丢包信息,便于定位网络问题

6. 推拉流质量回调增加对标签属性相关参数的监听

7. 日志信息添加 muted 、paused、voilume 参数值,以便于定位推拉流无声问题。

问题修复

  1. 修复推拉流状态在重复收到重试错误信息后可能不回调问题
  2. 修复其它已知问题


1.9.0 版本

发布日期:2020-07-30

问题修复

  1. 修复订阅拉流更新回调信息中 CDN 地址为空的问题
  2. 修复其它已知问题

改进优化

1. 创建屏幕共享流时优先使用插件进行屏幕共享,插件形式的屏幕共享兼容性更佳

2. 优化停止推拉流接口的调用,推拉流后的任何时间都可以成功调用对应的停止接口

3. 推拉流调度逻辑优化,减少不必要的代码执行

4. 优化切换摄像头麦克风设备接口错误信息处理逻辑,相应的错误信息都会通过reject抛出

5. 若调用停止推流前使用了混音功能,则调用停止推流接口时 SDK 内部将对应流的混音一并停止

6. 优化 SDK 针对浏览器异常关闭的处理逻辑,兼容对浏览器beforeunload事件的监听



1.8.1 版本

发布日期:2020-07-20

问题修复

  1. startMixerTask 参数检查修正


1.8.0 版本

发布日期:2020-07-15

新增功能

1. server 支持备用域名,提升在网络环境不好时的连通率

改进优化

1. 统一对外错误码,对齐native 端

2. 修复推拉流首次质量上报为空的问题,优化上报数据信息

3. 开始、停止推拉流增加状态回调

4. 修复切换设备内部部分错误没回调的问题

5. 优化内部心跳发送逻辑

6. 修复外接摄像头松动,web端拉流无法拉继续拉音频流问题

7. 修复推流过程关闭摄像头,safari 拉音频流失败问题

8. 修复其它已知问题



1.7.0 版本

发布日期:2020-06-30

新增功能

1. 增加startMixingAudio 开始混音接口,并追加支持多路混音

2. 增加stopMixingAudio 停止混音接口

3. 新增音浪回调设置接口 setSoundLevelDelegate 用户可根据需要设置音浪回调频率,通过 soundLevelUpdate 回调

改进优化

1. 拉流是否拉音视频若有设置以用户设置的为准

2. 屏幕共享接口现支持多次调用

3. 优化音频处理逻辑,避免性能浪费

4. 推拉流视频编解码参数兼容大小写,提高容错率

5. 修复推流前调用接口关闭摄像头麦克风,再进行推流,此时拉流端收到摄像头或麦克风状态不符合预期问题

6. 修复在使用插件进行屏幕共享点击取消后多次弹窗问题,优化错误信息

7. 修复其它已知问题



1.6.0 版本

发布日期:2020-06-15

问题修复

1. 增加创建流createStream的接口对视频及音频码率的监测,解决参数越界导致推流失败问题

2. 质量上报优化,解决部分浏览器存在质量上报缺失部分参数的问题

3. 检测接口优化,修改部分监测时机,提高检测准确性

4. publiserState及playerState状态回调优化,解决回到状态不够准确问题

5. 流更新接口优化,解决房间流列表为空仍触发回调问题

6. 修复其它已知问题



1.5.2 版本

发布日期:2020-06-08

问题修复

  1. startMixerTask 参数修正
  2. 修复日志信息过长上传报错


1.5.1 版本

发布日期:2020-06-02

问题修复

  1. mutePublishStreamAudio 参数修正


1.5.0 版本

发布日期:2020-05-15

改进优化

1. useVideoDevice useAudioDevice 切换设备接口改为Promise

2. 优化部分错误码信息

3. 优化拉流设备状态逻辑

4. 优化部分关键日志

问题修复

  1. 修复已知问题


1.4.0 版本

发布日期:2020-04-30

  1. 摄像头麦克风设备状态优化
  2. 优化房间用户列表拉取策略
  3. 修复已知问题


1.3.0 版本

发布日期:2020-04-15

  1. 客户端控制房间最大人数
  2. webrtc增加对https的检测
  3. 优化节点重试逻辑
  4. 修复已知问题


1.2.1 版本

发布日期:2020-03-30

  1. 新增remoteCameraStatusUpdate remoteMicStatusUpdate,监听回调推流端摄像头及麦克风设备状态
  2. 新增节点重试逻辑,提高连接稳定性及成功率
  3. 检测接口新增对屏幕共享功能检测,优化检测逻辑。相关接口: checkSystemRequirements
  4. 新增推流设备状态信息上报,优化日志信息
  5. 增加房间弹幕消息功能


1.1.0 版本

发布日期:2019-11-28

  1. 增加混流接口
  2. 增加IM接口
  3. 对齐各端接口,接口命名、参数命名、取值等统一


1.0.0 版本

发布日期:2019-10-31

Zego Webrtc Express SDK 初版发布。包含系统、房间、推流、拉流功能