互动视频
  • iOS : Objective-C
  • Android
  • macOS
  • Windows
  • Linux
  • Web
  • 小程序
  • Electron
  • 概述
  • 限制说明
  • SDK 下载
  • 快速开始
  • 常用功能
  • 推拉流进阶
  • 视频进阶
  • 音频进阶
  • 其他功能
  • 废弃接口
  • API 文档
  • 常见错误码
  • 常见问题
  • AI教育
  • KTV 合唱
  • 视频直播
  • 视频通话
  • 游戏直播
  • 直播答题
  • 娃娃机
  • 文档中心
  • 互动视频
  • SDK 下载
全功能版
LiveRoom SDK v6.30.0
本地下载

发布历史

2024-04-23 Version:6.30.0

新增功能

1. 新增“汽车人”、“没电了” 两种变声音效

[ZegoAPIVoiceChangerType] 新增 “汽车人”、“没电了” 两种变声效果的枚举值,丰富变声效果。

相关 API 请参考 setVoicePreset

2. 支持在使用手机麦克风采集音频时,通过蓝牙播放声音

注意:如需使用该功能,请联系 ZEGO 技术支持。

3. 媒体播放器支持视频画面镜像

相关 API 请参考 enableViewMirror

4. 支持提前判断设备能否运行 AI 变声功能

AI 变声功能对运行设备的性能有一定要求,开发者可以提前判断设备能否支持运行 AI 变声功能。

改进优化

1. 优化超分效果,使其更符合人眼的主观感知,更清晰自然

优化超分效果,降低了算法的锐度,从而提升了在原始画面有噪点、画面中有人脸等情况下的主观质量。例如,主播脸上的瑕疵不会被突出、主播的发缝不会变得更明显。

问题修复

1. 修复未定义全局变量的释放时机,导致进程退出异常的问题

2. 修复 iPad 通过麦克风采集音频,偶现没声音的问题

3. 修复销毁摄像头时多线程并发,导致访问空指针崩溃的问题

4. 修复使用 AI 变声功能,偶现音画不同步、启停瞬间吞字的问题

2024-03-29 Version:6.29.2

问题修复

1. 修复已知问题

2024-03-14 Version:6.29.0

新增功能

1. 外部采集支持低照度增强和色彩增强

注意:外部采集功能和视频前处理功能不能同时使用,否则可能会出现拉流画面异常。

支持在开启外部采集功能后,分别通过 setLowlightEnhancementenableColorEnhancement 接口,开启低照度增强和色彩增强,对采集画面进行调整,以满足业务需要。

相关 API 请参考 setLowlightEnhancementenableColorEnhancement

2. 支持 H.265 自动兼容策略

注意:如需使用该功能,请联系 ZEGO 技术支持。

房间内有用户不支持 H.265 格式时,支持推流端回退到 H.264 格式重新推流。

改进优化

1. 优化色彩增强算法

优化色彩增强算法,在画面色彩饱和度较高的场景下,相较之前的版本表现更佳。

2. 针对 KTV 场景,优化蓝牙耳机的人声、伴奏对齐效果,提升 K 歌体验

问题修复

1. 修复引擎进行渲染初始化时,偶现状态不正确的问题

2. 修复初始化 SDK 后立即调用同步接口,偶现 UI 线程卡死的问题

3. 修复长时间使用 SDK 未反初始化,导致接口调用耗时异常的问题

4. 修复硬编、硬解时兼容异常,偶现崩溃的问题

5. 修复已知的兼容异常、及空指针的问题

2024-01-16 Version:6.28.4

问题修复

1. 修复初始化 SDK 时,如果出现网络异常,会偶现 UI 卡顿的问题

2. 修复切换网络时,如果网络异常,极低概率下会出现 UI 卡顿的问题

2024-01-05 Version:6.28.3

问题修复

1. 修复调用 [enableMicDevice] 接口时偶现崩溃的问题

2024-01-03 Version:6.28.2

问题修复

1. 修复潜在问题

2023-12-27 Version:6.28.0

新增功能

1. 支持版权音乐插件

注意:

  1. 如需使用该功能,请联系 ZEGO 技术支持。
  2. 版权音乐插件包无法单独使用,必须与 Liveroom SDK 搭配使用。

支持版权音乐功能插件化,当开发者的业务场景仅需更新版权音乐相关的代码时,可以单独集成插件包,无需更新 Liveroom SDK,即可平滑迁移。

2. 支持对转推到 CDN 的音视频流补静音帧

注意:如需使用该功能,请联系 ZEGO 技术支持。

支持对转推到 CDN 的音视频流补静音帧,可以用于避免因时间戳不同步、造成的卡顿或音画不同步等问题发生。

3. 支持在使用媒体音量时,触发系统震动反馈

注意:如需使用该功能,请联系 ZEGO 技术支持。

支持用户在使用媒体音量时,震动反馈相关的 API 可以生效,正常触发系统震动反馈。

4. 支持获取摄像头采集的亮度值

注意:如需使用该功能,请联系 ZEGO 技术支持。

支持获取摄像头采集的亮度值,可以用于业务侧相关的逻辑处理,例如判断摄像头是否被遮挡。

改进优化

1. 优化画中画功能

注意:如需使用该功能,请联系 ZEGO 技术支持。

支持在收回系统菜单后,继续以画中画的方式播放。

问题修复

1. 修复 Swift 实现外部滤镜时引起崩溃的问题

2023-11-29 Version:6.27.0

新增功能

1. 推流视频支持色彩增强

针对各种摄像头等设备采集到的画面色彩偏灰、或饱和度偏低的情况,支持在保护人体肤色的同时,增强画面色彩,使其更加鲜艳明亮,更符合人眼真实的视觉感受,详情请参考 推流视频增强

相关 API 请参考 enableColorEnhancement

2. 所有网络请求支持 IPv6 协议

3. 支持 MJPEG 格式的硬件解码加速

注意:该功能仅支持截图的前处理,不支持其他处理(如旋转、水印等)。

当采集设备输出的视频格式为 MJPEG 时,默认开启硬件解码加速能力,防止出现因设备性能不足而导致的帧率不足等问题。

该功能主要适用于在 4K 分辨率的采集设备上使用。

4. 自动混流支持设置水位

注意:

  1. 该功能默认不开启,即服务端使用默认的配置值。
  2. 该功能会增大延迟,请酌情使用。

自动混流接口支持设置水位,控制混流服务器拉流缓存的自适应调整的区间范围下限,以便在“混流耗时”和“推流端不稳定导致的画面卡顿”之间保持平衡。该功能设置后,仅对新的输入流生效,对于已经开始混流的输入流不生效。

例如实时合唱 KTV 场景中,推流端网络轻微波动可能会导致混流卡顿,此时观众观看时也会有较高概率出现卡顿。通过调节水位下限,可以优化观众端卡顿问题,但会增大延迟。

相关 API 请参考 ZegoAutoMixStreamConfig.minPlayStreamBufferLength

5. 混流支持输入直播协议流

新增支持将直播流作为输入流,进行混流处理;直播输入流的 URL 支持 RTMP 和 HTTP-FLV 两种协议。该功能适用于将主播连麦的RTC 画面流与云端体育直播流、游戏直播画面流等进行混合,实现游戏或体育直播解说的场景中。

6. 音效播放器支持分别设置推流音量、本地播放音量

音效播放器支持分别设置推流音量、本地播放音量,保证本端和远端的音量大小都处于合适的区间。

相关 API 请参考 ZegoAudioPlayer.setPublishVolumeZegoAudioPlayer.setPlayVolumeZegoAudioPlayer.setPublishVolumeAllZegoAudioPlayer.setPlayVolumeAll

改进优化

1. 优化服务端混流及单流转码能力

优化服务端混流及单流转码能力,提高编码效率,同等码率下提升 5% 以上的主客观画质。

2. 优化 AEC(回声消除)算法,实现更好的 AEC 效果

3. 优化网络连接策略,提升音视频通话体验

4. 优化多端登录逻辑

用户在 A 设备上登录成功后,A 设备断网;然后使用同一 userID 在 B 设备上登录成功。此时如果 A 设备网络恢复,重连会失败,并抛出 62050013 错误码,提示该 userID 已在其他设备登录。

问题修复

1. 修复某些情况下硬编硬解导致崩溃的问题

2. 修复摄像头恢复采集后,没有通知状态的问题

2023-11-09 Version:6.26.1

问题修复

1. 修复开启低照度增强后出现黑屏的问题

2023-10-13 Version:6.26.0

新增功能

1. 新增实时 AI 变声功能

注意:

  1. “AI 变声”功能为付费功能,如需申请体验或咨询正式收费标准,请联系 ZEGO 商务人员。
  2. 当前官网 SDK 不包含此功能,如有需要,请联系 ZEGO 技术支持特殊编包。

新增 AI 变声功能,实时通话中的“柯南变声领结”,完美重现目标角色的音色与韵律,同时保留用户的语速、情感、语调,随心所欲切换音色,超低延迟让用户畅享社交语聊、直播、游戏语音等场景,详情请参考 AI 变声

2. 主体分割的虚拟背景支持使用视频素材

注意:

  1. 当前官网 SDK 不包含此功能,如有需要,请联系 ZEGO 技术支持特殊编包。
  2. 虚拟背景的视频填充方式为居中及等比例缩放,视频过大时,超出部分会被裁减。

使用主体分割功能时,虚拟背景支持使用视频素材,视频素材的最终帧率会与编码帧率保持一致,且循环播放。视频素材的限制说明,请参考 主体分割

相关 API 请参考 enableVideoObjectSegmentation

3. 支持获取并上传音频的 Dump 文件

注意:由于音频 Dump 文件属于用户的隐私敏感数据,因此开发者实现该能力时,请务必认真阅读 《即构隐私政策》 中关于 “使用音频 Dump 功能” 的内容。此外,在收集音频 Dump 文件时,请在获得用户授权同意时,同步注明 LiveRoom SDK 收集目的。

支持将处理前后的音频数据保存下来并上传,用于定位音频相关问题、提高问题排查效率、缩短接入时间,详情请参考 如何获取、上传音频的 Dump 文件?

相关 API 请参考 startDumpDatastopDumpDatauploadDumpdataremoveDumpDataonRequestDumpDataonStartDumpDataonStopDumpDataonUploadDumpData

4. 自定义视频采集支持透明通道传输

支持提取、编码和传输开发者自定义采集的 RGBA 通道中的 Alpha 通道数据,从而在拉流端渲染出透明背景的主体,实现更加沉浸、真实的视频场景。

相关 API 请参考 enableAlphaChannelVideoEncoder

改进优化

1. 优化低照度增强功能,自动模式下更加平滑

在低照度增强的自动模式下,亮度的动态调整将更加流畅平滑,提升用户视觉体验。

2. 优化网络测速的期望推、拉流码率上限

优化网络测速的期望推、拉流码率上限,提升至 15M。开发者可以在推拉流前,检查音视频质量与当前网络的匹配程度,以保证通话质量稳定。

相关 API 请参考 startUplinkSpeedTeststartDownlinkSpeedTest

3. 媒体播放器支持仅播放视频或音频,不额外消耗解码性能

注意:播放过程中,如果修改了媒体流类型,会在下一次播放时生效。

使用媒体播放器播放音视频文件时,支持通过 setPlayMediaStreamType 接口,设置为“仅播放音频”或“仅播放视频”,不消耗音视频解码性能。

相关 API 请参考 setPlayMediaStreamType

问题修复

1. 修复拉流时,偶现无声音的问题

2. 修复多房间断网的异常情况下,多次调用 [logoutRoom]、[loginRoom] 接口,导致后续登录房间失败的问题

3. 修复房间重连失败的情况下,可能出现频繁重试的问题

2023-09-08 Version:6.25.0

新增功能

1. 支持分离“耳返数据”和“上行音频数据”

注意:该功能需要在调用 [initSDK] 接口初始化 SDK 之前设置。

支持分离“耳返数据”和“上行音频数据”,可用于 KTV 实时合唱“耳返数据”和“推流数据”内容不一致的场景中。

相关 API 请参考 setConfig

2. 单流转码功能支持 RTC 拉流

注意:

  1. 如需使用该功能,请联系 ZEGO 技术支持。
  2. 转码会造成额外的延迟,不建议您在使用 RTC 拉流的麦上场景中使用该功能。

RTC 拉流时,支持通过预设的转码模板触发单流转码任务,输出不同分辨率的转码流,详情请参考 单流转码

该功能可用于直播等场景中,观众可以基于网络质量、终端设备等,选择不同分辨率的流进行观看,确保播放的流畅性。

3. 支持抛出 Audio Session 异常回调,例如设备无权限、被抢占等

相关 API 请参考 onDevice

4. 支持均衡型 AI 降噪模式

注意:当前官网 SDK 不包含此功能,如有需要,请联系 ZEGO 技术支持特殊编包。

支持均衡型 AI 降噪模式,与原有模式相比,在相同的人声保真效果前提下,噪音抑制效果明显提升,可以达到干净无噪音或不扰人的程度;但性能消耗稍微增加。适用于街道、马路、市场等较为嘈杂(信噪比低)的户外环境中,详情请参考 场景化 AI 降噪

问题修复

1. 修复退出后台、关闭摄像头后,在前台打开摄像头进行推流会卡住的问题

2. 修复调用 sendMediaSideInfo 接口发送音频次要消息,接收端 10s 左右才能收到消息的问题

3. 修复网宿 CDN 在直推情况下,停推 TCP 断连耗时固定为 500 ms 的问题

4. 修复音频外部采集模块切换音源时,会导致无声的问题

5. 修复通过 setWaterMarkImagePath 设置水印路径超过最大长度时,没有抛出错误信息的问题

6. 修复发送流新增时,极小概率出现失败的问题

7. 修复音效播放器偶现崩溃的问题

2023-08-16 Version:6.24.1

问题修复

1. 修复使用 Token 鉴权时,在 [initSDK] 之后、[uninitSDK] 之前变更了 userID,可能导致推拉流失败的问题

2023-08-09 Version:6.24.0

新增功能

1. 新增支持“智能云代理”模式

注意:如需使用该功能,请联系 ZEGO 技术支持。

开发者设置“智能云代理”模式后,在 RTC 或 L3 拉流时,会优先使用直连网络模式进行尝试。如果直连网络不可用、且当前是蜂窝网络,则继续留在直连模式重试;如果直连网络不可用、且当前是非蜂窝网络,则切到云代理模式,详情请参考 云代理

2. 支持抛出编码和硬件解码的低帧率告警

注意:如需使用该功能,请联系 ZEGO 技术支持。

新增支持抛出编码和硬件解码的低帧率告警回调,在 1v1 聊天、直播等场景中,开发者可基于该回调,实现调整推流分辨率、触发转码等操作。

相关 API 请参考 onVideoEncoderonVideoDecoder

3. 支持在辅路推流时回调流控信息

在辅路推流时,支持通过 onTrafficControlCallback 回调流控信息。

相关 API 请参考 onTrafficControlCallback

改进优化

1. 优化低照度增强算法的噪点表现

2. 优化媒体播放器加载资源的 URL 长度,最大支持 2048 字节

3. 优化媒体播放器 SEI 信息与相应帧数据的回调同步,保证 SEI 和画面的一致性

问题修复

1. 修复带 B 帧的 H.265 RTMP 流出现硬解卡顿的问题

2. 修复硬解 H.265 出现内存泄漏的问题

3. 修复 iOS 推流过程中,出现系统弹窗时无法正常采集的问题

2023-07-13 Version:6.23.0

新增功能

1. 开启视频大小流编码后,除大流的视频参数外,新增支持设置小流的视频参数

注意:

  1. 使用此功能前,需要先调用 setVideoCodecId 接口,指定视频编码格式 codecID 为 “VIDEO_CODEC_H264_DUAL_STREAM(大小流编码)”。
  2. 设置大流、小流的分辨率的 “比例” 需要保持一致,否则调用接口会出错。

在指定编码格式为 “大小流编码” 的情况下,支持分别设置大流和小流的分辨率、帧率和码率,详情请参考 视频大小流和分层编码

相关 API 请参考 setVideoCodecId, setPublishDualStreamConfig

2. 游戏语音支持配置 3D 音效距离的衰减范围

游戏语音场景中,支持设置 3D 音效距离的衰减范围区间 [min, max]。距离小于 min 时,音量不会随着距离的增加而衰减;距离大于 max 时,将无法听到对方的声音。

相关 API 请参考 setAudioReceiveRange

3. SDK 支持设置云代理

注意:如需使用该功能,请联系 ZEGO 技术支持。

通过设置 SDK 的云代理接口,将 SDK 对应的所有流量通过云端的代理服务器进行中转,实现与 RTC 通信,详情请参考 云代理

相关 API 请参考 setCloudProxyConfig

改进优化

1. 优化 SDK 内部逻辑,减少 400KB ~ 600KB 的内存占用

2. 优化 SDK 视频采集策略,提升画质

3. 在断网导致的推拉流重试状态中,支持回调本地网络质量

相关 API 请参考 onNetworkQuality

4. 支持在调用 [unInit] 接口后,生成日志上传任务

相关 API 请参考 uploadLog

5. 修改重置拉流配置的时机,从 “停止拉流” 变更为 “开始拉流”

6. 优化 SDK 的内部逻辑,提升弱网环境下的通话体验

问题修复

1. 修复 metal 上屏渲染时会偶现卡死的问题

2. 修复 MediaRecorder、AudioObserver 停止推流后,未恢复本地推流,继续采集的问题

2023-06-09 Version:6.22.0

新增功能

1. 新增支持背景虚化、虚拟背景功能

注意:当前官网 SDK 不包含此功能,如有需要,请联系 ZEGO 技术支持特殊编包。

在实景或绿幕场景中,开发者可以通过该功能对用户的背景进行虚化模糊处理,或替换为自定义图片背景,详情请参考 主体分割

该功能可用于视频会议、1v1 音视频通话等场景中,帮助用户更好的保护个人隐私,以及提升通话的趣味性。

相关 API 请参考 enableVideoObjectSegmentation

2. 媒体播放器倍速功能最大支持 4 倍速

媒体播放器倍速的上限提升到 4 倍速。例如,用户在播放音视频文件时,如果已设置为 2 倍速播放,长按屏幕时可以加速至 4 倍速。

相关 API 请参考 setPlaySpeed

改进优化

1. 优化主体分割功能在麦克风与人体重叠时的表现

注意: 当前官网 SDK 不包含此功能,如有需要,请联系 ZEGO 技术支持特殊编包。

当麦克风与人体区域存在部分重叠时,可以保留重叠区域的麦克风形状,以维持完整的人体区域形状。

相关 API 请参考 enableVideoObjectSegmentation

问题修复

1. 修复使用媒体播放器时可能会导致内存泄露的问题

2023-05-11 Version:6.21.0

新增功能

1. 支持在外部采集时持续推送视频画面的最后一帧

注意:如需使用该功能,请联系 ZEGO 技术支持。

当推流端不再推送新的视频帧时,会导致拉流画面出现黑屏。开发者可以通过该功能,让拉流端用户的观看画面停留在推流视频画面的最后一帧,改善用户体验。

相关 API 请参考 setConfig

2. 外部采集支持主动偏移 NTP 时间戳

注意:如需使用该功能,请联系 ZEGO 技术支持。

使用外部采集功能时,支持通过实验性 API 接口主动偏移 NTP 时间戳。该功能可用于 KTV 的合唱、伴奏、歌词对齐等场景。

3. 多房间模式下支持快速切换房间

多房间模式下,支持通过 switchRoom 接口,快速便捷地实现切换房间的功能。

相关 API 请参考 switchRoom

4. 支持自主维护 AEC(回声消除)的参考信号

注意:

  1. 如需使用该功能,请联系 ZEGO 技术支持。
  2. 启动拉流以后,调用该接口才会生效。

支持开发者通过 onReferenceAudioFrame 回调接口,输入需要消除的声音(即参考信号),直接消除。

该功能可用于自定义采集渲染场景中。例如:用户外放背景音乐,同时上麦进行发言,其中背景音乐不是使用自定义渲染或外部渲染的声音,可通过该功能消除推流中包含的背景音乐回声。

相关 API 请参考 onReferenceAudioFrame

改进优化

1. 大幅度减少 SDK 的内存消耗

该优化从 6.21.0 版本开始生效,不需要额外接口。

问题修复

1. 修复媒体播放器在部分 m3u8 文件格式中,不能通过 seekTo 接口使播放进度跳转到跳转到 0 的问题

2. 修复重新推流后,拉流端视频卡顿的偶现问题

3. 修复 3D 音效开启异常的问题

4. 修复 iOS 媒体播放器首次加载文件、前几秒没有画面的偶现问题

2023-04-23 Version:6.20.1

问题修复

1. 修复 iOS 16.4.1 版本的设备在硬编码推流时,由于视频硬编码率不受控,导致的视频画面模糊的问题

废弃删除

1. 从 6.20.1 版本开始,废弃了对 iOS 11.0 以下版本的支持,iOS Deployment Target(最低支持版本)提升到 iOS 11.0

具体说明,请参考 App Store submission requirement starts April 25Xcode 14 Release Notes

2. 从 6.20.1 版本开始,iOS SDK 不再支持 32 位 armv7 架构

具体说明,请参考 Xcode 14 Release Notes

2023-04-14 Version:6.20.0

新增功能

1. 新增地理围栏功能

注意:

  • 如需使用该功能,请联系 ZEGO 技术支持。
  • 请在创建引擎之前,配置地理围栏信息。

将音视频及信令数据访问限定在某一区域,用以满足地区数据隐私安全相关法规,即限定用户访问某一特定区域的音视频服务,详情请参考 地理围栏

相关 API 请参考 setGeoFence

2. 状态同步及万人范围音视频支持主动拉流

状态同步及万人范围音视频功能支持通过流 ID 主动拉流或自定义拉流。该功能可实现无论距离多远都保持拉流的玩法,适用于虚拟世界中存在大屏或主持人时,虚拟世界中任何一个地方的观众都可以通过拉流得到大屏或者主持人声音的场景。

3. 暴露音频前处理 AUX 对齐后的混音音频数据,并通过 onAlignedAudioAuxDataCallback 返回

相关 API 请参考 setAlignedAudioAuxDataDelegateenableAlignedAudioAuxData

4. 媒体播放器支持边下载、边回调数据解密、边播放的功能

针对在线播放器的版权音乐保护,媒体播放器支持边下载边回调未解密的二进制数据,由开发者解密后再传回媒体播放器播放,过程中不会产生文件或缓存文件。

相关 API 请参考 setBlockDataDelegate

5. 支持按平台开关主体分割功能

注意:

  • 如需使用该功能,请联系 ZEGO 技术支持。
  • 通过实验性 API 形式接入的开发者,需要迁移为通过正式 API 接口接入主体分割功能。

相关 API 请参考 enableVideoObjectSegmentation

6. 支持动态切换流控策略

支持动态开关流量控制功能,同时支持设置流量控制属性等。

相关 API 请参考 enableTrafficControl, setMinVideoBitrateForTrafficControl, setMinVideoFpsForTrafficControl, setMinVideoResolutionForTrafficControl

改进优化

1. 优化 SDK 内存占用

删除 SDK 内部一些没必要的内存申请,优化 SDK 内存使用率,相比上个版本,内存使用率减少了 10% 左右。

问题修复

1. 修复游戏语音在某些情况下收听异常的问题

2023-03-10 Version:6.19.0

新增功能

1. 支持外放场景下的人声增强效果

在外放场景中,设备的麦克风与扬声器过近,容易导致人声模糊或沉闷。在该场景下,人声增强可以有效提升人声清晰度并改善沉闷感,因此在外放场景下,建议开启该功能。

为实现外放场景下的人声增强效果,可开启人声增强音效并设置增强等级,增强等级推荐配置为 4,可用于 KTV 外放场景下,精细控制人声效果。

相关 API 请参考 enableSpeechEnhance

2. 媒体播放器支持获取容器的元数据信息

相关 API 请参考 getMetaDataValue

3. 新增音频文件录制功能

相关 API 请参考 startAudioRecordstopAudioRecord

4. 单流转码功能支持 L3 或 CDN 拉流

注意:通过 CDN 拉取转码流时,必须使用转推 CDN。如需使用该功能,请联系 ZEGO 技术支持。

单流转码,指在云端把每条原始流转换为不同编码格式、不同分辨率的转码流。拉流时传入转码模板 ID 拉取转码流。在直播等场景中,观众可以基于接入网络质量、终端设备等,自行选择不同分辨率的流进行观看,以保证播放的流畅性。

5. Express SDK iOS 端拉流功能支持画中画能力

注意:如需使用该功能,请联系 ZEGO 技术支持。

6. 混流任务支持输入超级白板信息

在混流功能支持将白板中的操作内容转成实时视频,且支持设置白板配置信息,例如,设置白板 ID、白板宽高比、是否支持加载动态 PPT 等。

相关 API 请参考 mixStreamEx

改进优化

1. 优化超分算法,大幅提升机型覆盖率

注意:enableVideoSuperResolution 修改了调用时机,需要在 initVideoSuperResolution 后才能调用,详情请参考 超分辨率

相关 API 请参考 enableVideoSuperResolutioninitVideoSuperResolution

2. 优化超分逻辑,新增初始化、反初始化接口

注意:enableVideoSuperResolution 修改了调用时机,需要在 initVideoSuperResolution 后才能调用,详情请参考 超分辨率

相关 API 请参考 initVideoSuperResolutionuninitVideoSuperResolutionenableVideoSuperResolution

2023-02-23 Version:6.18.1

问题修复

1. 修复某些场景下,重新登录房间后,音频外部采集需重新设置才能生效的问题

2023-01-13 Version:6.18.0

新增功能

1. 支持视频大小流功能

通过视频大小流编码(H.264 DualStream)对视频进行码流分层时,相比较于分层视频编码(H.264 SVC),视频大小流编码(H.264 DualStream)支持使用硬件编码,即 ZegoVideoCodecAvc 新增 VIDEO_CODEC_H264_DUAL_STREAM 字段,详情请参考 设置视频编码方式

2. 主体分割支持实景分割与绿幕分割,内部渲染支持 Alpha 通道

注意:本功能为内测功能,如需接入体验,请联系 ZEGO 商务人员。

  • Android、iOS、Windows、macOS(暂只支持 Apple 芯片)四端支持实景分割与绿幕分割。
  • 内部渲染支持 Alpha 通道,开发者不需要使用自定义渲染,即可实现主体与背景的混合。

改进优化

1. 自定义信令配置支持扩展到 4KB

注意:自定义信令配置默认大小为 1KB,如需扩展到 4KB,请联系 ZEGO 技术支持进行处理。

问题修复

1. 修复当硬件解码故障后重启时,访问空指针崩溃的问题

2. 修复由于读取图片宽高不正确,导致调用 [setDummyCapturelmagePath] 设置关闭摄像头推静态图片无效的问题。

3. 修复当 iOS 14 启动引擎后,访问不存在的 API 时,导致崩溃的问题

4. 修复小概率异常断开情况,可能导致推流失败的问题

5. 修复网络时间模块重试失败的问题

2022-12-09 Version:6.17.0

改进优化

1. 大幅度提升极端弱网地区的音视频连通率,并降低连通耗时

ZEGO 自研调度系统针对网络质量极差地区进行了深度优化。

问题修复

1. 修复发送房间 Logout 信令可能失败的问题

2. 修复视频外部采集在内存模式下,偶现的访问野指针崩溃的问题

3. 修复视频硬解故障后,偶现的重启访问空指针崩溃的问题

2022-11-25 Version:6.16.3

问题修复

1. 修复 iOS、macOS、Windows 平台硬件解码可能会崩溃的问题

2022-11-15 Version:6.16.2

问题修复

1. 修复多房间模式下,停止推流时,房间内其他人收不到流删除通知的问题

2022-10-31 Version:6.16.1

问题修复

1. 修复 iOS 硬件解码失效的问题

2022-10-28 Version:6.16.0

新增功能

1. 新增视频超分辨率能力

注意:如需使用该功能,请联系 ZEGO 技术支持。

新增 [enableVideoSuperResolution] 接口支持对某一条视频流进行超分辨率处理,从而得到更好的画质。超分辨率,简称超分,是在客户端对拉取的视频流的宽和高实时倍增处理的技术,例如,从 360p 超分为 720p,详情请参考 超分辨率 文档。

相关 API 请参考 enableVideoSuperResolutiononPlayVideoSuperResolutionUpdate

2. 场景化 AI 降噪新增在音乐场景下降噪的能力

注意:如需使用该功能,请联系 ZEGO 技术支持。

场景化 AI 降噪功能,在之前针对所有非人声进行降噪的基础上,新增支持在音乐场景下的降噪能力,通过识别音乐,智能调整降噪效果还原音乐音质。实时对 mic 输入内容进行音乐检测,在声卡、弹唱或近场音乐场景下,自动调整降噪等级,保证音乐的高保真音质,详情请参考 场景化 AI 降噪 文档。

3. 支持获取当前设备指定视频编解码器的编解码能力支持情况

SDK 支持获取当前设备指定视频编解码器的编解码模式的支持情况,从而更好的帮助开发者选择使用的编码器及编码模式并获得更好的效果。

  • 通过 [isVideoEncoderSupported] 接口,可获取当前编码器的硬件或软件编码支持情况
  • 通过 [isVideoDecoderSupported] 接口。可获取当前解码器的硬件或软件解码支持情况。 以上两个接口均包含三个枚举值:支持硬件或软件,支持硬件,支持软件。例如以 Android 端为例,isVideoEncoderSupported(ZegoVideoCodecID.H265, ZegoVideoCodecBackend.HARDWARE),即表示检查当前设备是否支持 H265 的硬编,若支持,则返回 true。

相关 API 请参考 isVideoEncoderSupportedisVideoDecoderSupported

4. 媒体播放器支持控制指定音轨进行本地播放还是推流

注意:需在开始播放前调用 [setAudioTrackMode] ,且开启该模式会增加对硬件设备的资源消耗。

当开发者希望指定特定的音轨进行推流时,则可通过 [setAudioTrackMode] 设置媒体播放器的播放模式为多音轨模式,并通过 [setAudioPublishStream] 设置对应播放器需要推流的音轨。

相关 API 请参考 setAudioTrackModesetAudioPublishStream

5. 新增获取 GPS 信息开关接口

注意:如需关闭该功能,请联系 ZEGO 技术支持。

在 App 有获取地理位置权限的情况下,开发者可以选择是否允许 ZEGO SDK 获取系统缓存的 GPS 信息,默认进行获取。当开发者希望关闭该功能时,需要联系 ZEGO 技术支持进行设置。

改进优化

1. 针对 1v1 纯 RTC 通话场景进行优化

注意:如需使用该功能,请联系 ZEGO 技术支持。

针对 1v1 通话场景进行了优化,适用在纯 RTC 场景下使用。

2. 优化空间音频功能

对空间音频能力进行了优化,用户可以区分前后音源,从而达到更好的沉浸感。

3. 优化采集音量过大会造成破音的情况

优化 AGC 自动增益控制算法,当采集音量过大时,不会造成破音情况。

4. 优化极端弱网下的音视频体验

SDK 优化了内部策略,在音视频的场景下,支持最小下行 50 kbps 拉流不卡顿,保障更好的极端弱网下的体验。

问题修复

1. 修复了 Mac M1 芯片电脑在部分系统版本下,Web 端开启硬件编码推流,并采用多 SPS(Sequence Paramater Set,又称序列参数集)、PPS(Picture Paramater Set,又称图像参数集)的输出形式 ,Native SDK 拉流时解码会出现花屏的问题

2. 修复了网络状态从有网络切换到无网络时,当前正在上传的日志有可能出现崩溃的问题

3. 修复了 GetCallbackController 非线程安全问题​

4. 修复了 SDK 在没有 View 的情况下,没有触发 [onPlayerRenderVideoFirstFrame] 的问题

废弃删除

1. 废弃了 bitcode 的支持

从 6.16.0 版本开始,LiveRoom iOS SDK 不再支持 bitcode,请参考 Xcode 14 Release Notes 中关于废弃 bitcode 的说明。

2022-09-09 Version:6.15.0

新增功能

1. ​移动端支持视频采集旋转功能

由于移动端摄像头具备角度、分辨率、旋转等特性,开发者需要做许多复杂的适配。
当前 SDK 对各种配置进行封装,提供简单的模式选择,包括自定义模式、固定比例模式、自适应模式及对齐模式,可有效降低开发者接入成本。
相关 API 请参考 setAppOrientationMode​​

2. 多房间推流接口增加流附加消息参数

支持开发者在推流过程中对流添加附加消息。
相关 API 请参考 startPublishWithParams​​

问题修复

  1. 修复多房间模式下,在网络切换(WiFi / 蜂窝网络)期间调用 loginRoom 可能无回调的问题。

  2. 修复范围语音功能在退出小队后,在范围距离外还能听到原小队内的人的声音的问题。

2022-08-09Version:6.14.0

新增功能

1. 支持 socks5 的本地代理

若在内网或防火墙场景下,您可以通过代理服务器与公网交互,并通过 setConfig 设置代理服务器地址,保证 ZEGO 音视频云服务正常,目前仅支持 socks5。

相关 API 请参考 setConfig

2. 低照度能力支持 iOS 的 Metal 库

注意:如果您需要指定 Metal 库,请联系 ZEGO 技术支持。

低照度能力支持 iOS 的 Metal 库,低照度能力默认使用 openGL 库。

3. SDK 外部采集支持 H.265 码流

请注意:

  • 推荐每 2s 一个 GOP,每个 I 帧必须携带 SPS 和 PPS,且放在最前面。在通过 zego_supportBufferType 接口告知 SDK 当前采集设备使用何种数据类型时,需返回 ZegoVideoCaptureDeviceOutputBufferTypeEncodedFrame
  • 外部采集不支持输入 B 帧。

相关 API 请参考 zego_supportBufferType

4. 支持动态修改 AudioDeviceMode

新增 setAudioDeviceMode 接口进行动态修改设备的音频模式,该配置决定设备的音量模式、前处理模式以及 Mic 占用逻辑,您可以根据具体场景进行选择,详情请参考 如何设置音频设备模式 ZegoAudioDeviceMode?

相关 API 请参考 setAudioDeviceMode

改进优化

1. 优化网络质量回调,感知远端用户异常状态

当远端用户异常时,onNetworkQuality 每 2s 回调一次质量未知状态(Unknown 状态),当用户该状态持续 8s 后,则认为远端用户已异常断开,此时回调质量极差状态(Die 状态)。

相关 API 请参考 onNetworkQuality

2. 优化网络质量回调,网络质量反馈更灵敏

推拉流质量回调会每隔 3s 回调一次质量最差的结果,当周期内出现严重的抖动或丢包时,能够立刻反馈出流质量差。

相关 API 请参考 onPlayQualityUpdateonPublishQualityUpdateonNetworkQuality

3. 优化日志上报策略

优化日志上报策略,提高日志上传效率。

4. 优化 AGC 的谐波检测算法

AGC 新改进的谐波检测算法存在崩溃问题,现回退至老版本的谐波检测算法。

问题修复

  1. 修复当设置 setAudioRouteDelegatesetNetTypeDelegate 回调时,会导致 SDK 崩溃的问题。
  2. 修复网络模块极低概率崩溃的问题。
  3. 修复外部采集没有 zego_destroy 回调的问题。
2022-07-14Version:6.13.1

问题修复

  1. 修复纯音频场景发送 SEI 失败的问题
2022-07-08Version:6.13.0

新增功能

1. 支持设置低照度增强

注意:应在调用 initSDK 接口初始化 SDK 后,再调用 setLowlightEnhancement 接口。

当推流端用户周围环境较暗、或摄像头设置的帧率较高,导致直播画面比较暗,无法正常显示或识别主体的情况下,可调用 setLowlightEnhancement 接口,设置低照度增强,提升视频画面亮度。低照度增强功能包含三种模式:1:不开启低照度增强(默认)、2:开启低照度增强、3:自动开关低照度增强。

开发者可以根据业务场景选择不同的低照度增强模式:当希望自行判断是否需要进行低照度增强时,可以通过切模式 1 和 2 来控制;当希望 SDK 自动增强时,可以使用模式 3,SDK 将自动判断用户所处的光照环境,开启或关闭低照度增强。

相关 API 请参考 setLowlightEnhancement

2. 拉流接口增加 CDN Plus 拉流配置项

注意:若希望通过地区、用户等更多维度,从云端控制拉流方式,请联系 ZEGO 技术支持进行相关配置。

拉流接口新增 CDN_PLUS 的拉流资源模式(ZegoResourceType),开发者可按流维度自行开启使用CDN_PLUS 拉流。CDN Plus 拉流是比 CDN 拉流直播质量更高,但是价格接近 CDN 的一种性价比高的拉流方式,详情请参考 CDN Plus 拉流

相关 API 请参考 startPlayingStream

改进优化

1. 优化开启强制登录鉴权时,Token 异常的相关错误码

新增 62050119、62050120、62050121、62050122、62050123、62050124、62050125、62050126、62050127、62050128 等错误码。开启强制登录鉴权后,如果 Token 错误时,会返回这些错误码,详情请参考 常见错误码 中的详细解释和处理建议。

问题修复

  1. 修复一个 L3 拉流失败的问题

    修复 6.12.0 ~ 6.12.2 版本 SDK 采用 L3 拉流时,如果拉到的流是 6.7.0 及之前版本 SDK 推送的流,可能会失败的问题。

  2. 修复 CDN 拉流时,ZegoAPIPlayStreamParams 属性修饰符错误的问题

2022-06-20Version:6.12.2

问题修复

  1. 修复了在初始化 SDK 前设置音频设备模式不生效的问题
2022-06-18Version:6.12.1

问题修复

  1. 修复了一个概率性拉流失败的问题
2022-06-09Version:6.12.0

新增功能

1. 支持开启摄像头自适应帧率

注意:当通过 setAVConfig 设置的帧率小于 enableCamAdaptiveFPS 期望帧率最小值时,将使用 setAVConfig 设置的帧率值。由于不同的手机厂商的硬件和算法策略不同,该接口在不同的机型或同一机型的前后摄像头上,效果存在一定差异。

当推流端用户设置的帧率较高,而所处环境光照较低无法正常显示或识别主体的情况下,可以调用 enableCamAdaptiveFPS 接口,在一定范围内自动降低帧率来增加曝光时间,从而提升视频画面亮度。该功能常用于直播等对曝光要求较高的场景。enableCamAdaptiveFPS 接口需在初始化引擎之后,启动摄像头前调用。

相关 API 请参考 enableCamAdaptiveFPS

2. 支持设置混流中单条输入流的图片信息

注意:图片格式应为 JPG 和 PNG 格式,否则出现错误码 82000141;图片不得超过 1M,否则出现错误码 82000142。

支持通过 mixStreamEx 接口的 “ZegoMixerImageInfo” 类型参数,为单条输入流的内容设置图片,用于替代视频,即当使用图片时不显示视频。该功能的使用场景为连麦时,视频用户可能需要暂时关闭摄像头而显示其头像图片,或者当视频用户和音频用户连麦,需要显示音频用户的头像图片。

相关 API 请参考 mixStreamEx

3. 支持设置调用 activateAllVideoPlayStream 后是否清除最后一帧

注意:如需使用该功能,请联系 ZEGO 技术支持。

开发者发现推流用户违规时,可以调用 activateAllVideoPlayStream 接口暂停拉流用户拉取违规用户的视频流,要求违规用户整改。同时使用本功能,可避免因拉流用户的视频界面依然保留最后一帧导致的违规风险。

4. 支持线性增长的音量增益

注意:如需使用该功能,请联系 ZEGO 技术支持。

提供新的音量增益方式,开发者可以根据实际需求选择合适的音量增益方式。

5. 支持设置流级别的音视频自动审核

注意:如需使用该功能,请联系 ZEGO 技术支持开通后台服务。

在调用 startPublishWithParams 接口开始推流时,开发者可以设置 “ZegoAPIStreamCensorshipMode” 参数,进行流级别的音视频自动审核,自动鉴别涉黄涉政内容,以此降低开发者的接入难度和业务维护成本。

相关 API 请参考 startPublishWithParams

改进优化

  1. 优化回声消除,解决 KTV 等场景的吞音现象
2022-05-11 Version:6.11.0

新增功能

1. 直推 CDN 的流支持通过 L3 拉流

直推 CDN 时,在不改变推流方式的情况下,SDK 从客户的 CDN 源站拉流,通过 L3 将音视频内容分发给观众,通过 [ZegoResourceType] 控制源站资源。该功能常用于直播场景。

相关 API 请参考 startPublishing

改进优化

  1. 为了提高安全性,此版本将 curl 升级到 7.82.0

问题修复

  1. 修复了调用网络测速接口后立刻调用开始推流接口时,收不到网络测速回调的问题
  2. 修复了 H.265 仅本地媒体录制时不生效的问题
2022-04-13 Version:6.10.1

问题修复

  1. 修复了日志上报时,日志文件收集异常的问题
2022-04-09 Version:6.10.0

新增功能

1. 新增 AI 降噪功能

AI 降噪目前会对麦克风采集的音乐有较大损伤,包括人通过麦克风唱歌的声音。如需使用该功能,请联系 ZEGO 技术支持。

AI 降噪指的是 SDK 会对麦克风采集的声音进行降噪处理,在原有的稳态噪声正常处理的情况下,还会处理非稳态噪声,主要包括鼠标、键盘声、敲击、空调、厨房碗碟、嘈杂餐厅、环境风声、咳嗽、吹气 等非人声噪声。通过 setNoiseSuppressMode 接口中的 “ZegoANSMode” 参数设置 AI 降噪模式,并且可以实时调整降噪模式。

该功能常用于通话、会议等没有背景音乐的场景,例如普通音质语聊房、语音会议、语音开黑、一对一视频通话。

相关 API 请参考 setNoiseSuppressMode

2. 支持设置音效的播放速度

开始播放音效后,调用 setPlaySpeed 接口可以对音效设置四种播放速度(会同时设置本地播放速度和推流速度),分别为 0.5 倍速、原始速度、1.5 倍速和 2 倍速,默认为原始速度。

相关 API 请参考 setPlaySpeed

3. CDN 直播时支持使用 QUIC 协议推拉流

QUIC 协议推拉流主要用于改善弱网环境下 CDN 直播质量不稳定的情况,但是改善有限,推荐使用低延时直播,享受高质量且低延时的直播服务。当前支持使用腾讯、网宿两家 CDN 直播产品的 QUIC 协议推流及拉流。

通过 setCustomCDNPublishTarget 接口配置推流协议和 QUIC 版本,若想进行 QUIC 协议的自定义 CDN 拉流,需要通过 startPlayingStream 接口中的 “ZegoAPICDNPlayUrlInfo“ 参数配置拉流协议和 QUIC 版本。并且可以通过 onStreamEvent 回调查看当前拉流的协议。

相关 API 请参考 setCustomCDNPublishTargetonStreamEvent

4. 支持监听推拉流的地址和协议相关信息

发起推拉流后,可以通过 onStreamEvent 回调实时监听推拉流状态,该回调会返回当前使用的推流地址、资源类型和协议相关信息。

相关 API 请参考 onStreamEvent

改进优化

1. 混流文字水印支持设置字体边框及颜色

调用 mixStreamEx 接口,通过 “ZegoFontStyle” 中的 “border” 属性可以设置字体是否有边框,通过 “borderColor” 属性可以设置字体边框颜色,可以设置文字水印边框和边框颜色

相关 API 请参考 mixStreamEx

2. 完善开始混流接口 mixStreamEx 返回的错误码

新增 82000157 错误码,表示未开通混流服务。出现此错误码时,请在 ZEGO 控制台 自助开通混流服务(开通步骤请参考 项目管理 - 服务配置 中的“混流”),或联系 ZEGO 技术支持开通。

相关 API 请参考 mixStreamEx

问题修复

  1. 修复了某些平台使用 boringssl 加解密的问题。
  2. 修复了硬编失败不快速回滚软编的问题。
  3. 修复了 iOS 平台多次 Init Uninit 初始化和反初始化可能会导致断网情况下设置重试最大时间失效的问题。
2022-03-11 Version:6.9.1

问题修复

  1. 修复在 32 位机器下推实时音视频流失败的问题
2022-03-09 Version:6.9.0

新增功能

1. 支持设置视频帧率和视频分辨率的最小值

新增 [setMinVideoFpsForTrafficControl] 和 [setMinVideoResolutionForTrafficControl] 接口,可以用于用户网络不佳且开启了流量控制时,通过接口设置最低视频帧率及分辨率,帮助用户综合控制视频的显示效果。

相关 API 请参考 setMinVideoFpsForTrafficControlsetMinVideoResolutionForTrafficControl

2. 支持稳态语音检测时设置检测周期参数

稳态语音默认检测周期为 3 秒,用户需要修改默认检测周期,可通过 [enableAudioPrepVADStableStateMonitor] 接口自定义检测周期参数。

相关 API 请参考 enableAudioPrepVADStableStateMonitor

改进优化

  1. 优化了鉴权方式

    • 6.9.0 及以上版本,在创建引擎时将 AppSign 传空或不传,并且在登录房间时必须传入 Token,鉴权通过后即可使用实时音视频功能。

    • 6.9.0 以下版本,在创建引擎时传入 AppSign,鉴权通过后即可使用实时音视频功能。

问题修复

  1. 修复已知问题
2022-02-10 Version:6.8.3

问题修复

  1. 修复了同时调用 loginRoom 和 startPublishing 接口时,对端有概率出现收不到流新增通知的问题
2022-01-26 Version:6.8.2

问题修复

  1. 修复了用户无法接收到登录房间前该房间内其他用户发送的房间附加消息的问题
2022-01-20 Version:6.8.1

问题修复

  1. 修复已知问题
2022-01-14 Version:6.8.0

新增功能

1. H.265 拉流支持自动降级

如需使用该功能,请联系 ZEGO 技术支持。

  • 6.7.0 及之前版本:SDK 在使用 [startPlayingStream] 拉 H.265 编码的流时,如果拉流端出现因硬件性能较差导致解码帧率不足时,SDK 无法主动降级,需要用户先停止拉 H.265 编码的流,再转拉 H.264 编码的流。
  • 6.8.0 及以上版本:新增 H.265 拉流自动降级策略,在使用 [startPlayingStream] 拉 H.265 编码的流时,SDK 可以根据拉流质量情况,在拉流端硬件性能较差导致解码帧率不足的情况下,会自动降级拉 H.264 编码的流。

相关 API 请参考 startPlayingStream

问题修复

  1. 修复了反初始化 SDK 时偶现崩溃的问题
2021-12-09 Version:6.7.0

新增功能

1. 支持全方位虚拟立体声

新增支持全方位虚拟立体声,将单声道的声音通过算法处理,模拟成立体感的声音。该功能常用于 KTV 场景中,可以使唱歌的声音更加有立体感。
当调用 [enableVirtualStereo] 接口,将 angle 参数设置为 -1 时,表示立体声效果为全方位立体声。

相关 API 请参考 enableVirtualStereo

2. iOS 支持 Mac Catalyst 架构 (arm64 + x86_64)

开发者可以通过 Mac Catalyst 框架将 iOS 应用移植到 macOS 上。

改进优化

  1. 混流输出支持进阶的编码参数配置
    混流输出视频配置 [ZegoMixStreamOutput] 新增 encodeProfile 和 encodeLatency 参数,分别用于设置混流输出视频编码规格和混流输出视频编码延时。

问题修复

  1. 恢复设备模块接口 resumeModule 从同步改为异步,避免卡死问题
2021-11-16 Version:6.6.0

新增功能

1. 新增版权音乐功能

如需使用该功能,请联系 ZEGO 技术支持。

支持通过版权音乐功能,获取版权歌曲或伴奏资源,并结合媒体播放器进行本地播放控制,可以用于在线 KTV、语聊房等合唱或使用背景音乐的场景。

2. 自定义音频采集支持带时间戳的 PCM 帧

自定义音频采集模块支持传入带时间戳的音频 PCM 数据,可以用于 iOS 屏幕录制场景。

相关 API 请参考 setPcmtsTimestamp

3. 支持实时监听音频和视频的首帧回调

如需使用该功能,请联系 ZEGO 技术支持。

允许开发者自定义监听音频和视频帧到达的回调通知, 包括音频首帧到达回调、视频首帧到达回调、视频首帧渲染回调。

相关 API 请参考 callExperimentalAPI

4. 新增统一的摄像头对焦模式和曝光模式

新增统一的摄像头对焦模式和曝光模式。
摄像头对焦模式:
统一自动对焦:摄像头的焦距会不变,使用后摄像头观察物体,移动物体由远及近不会有清晰度变化。
统一持续自动对焦:摄像头的焦距会自适应,使用后摄像头观察物体,移动物体由远及近会有清晰度变化。
摄像头曝光模式:
统一自动曝光:移动手机,摄像头预览不会有明显的亮度变化。
统一持续自动曝光:移动手机,摄像头预览有明显的亮度变化。

5. 新增开启或关闭拉流对齐功能

该功能常用于 KTV 等需要混流对齐的场景,当拉流端播放时,通过 [setPlayStreamsAlignmentProperty] 接口控制播放的实时音视频流是否需要精准对齐。若需要,则拉取的所有流中包含精准对齐参数的会进行对齐;若不需要,则所有流都不对齐。

相关 API 请参考 setPlayStreamsAlignmentProperty

6. 新增音频设备模式

音频设备模式新增 GENERAL3 和 COMMUNICATION4 两种模式。
GENERAL3 模式表示关闭系统前处理,始终占用麦克风,全程使用媒体音量。COMMUNICATION4 模式表示开启系统前处理,上麦占用麦克风,下麦释放麦克风,全程使用通话音量。

相关 API 请参考 setAudioDeviceMode

7. 新增稳态语音检测功能

通过该功能可以判断一定时间内是否有人对着麦克风说话,用于检测采集后或音频前处理后的音频数据为人声还是噪声。

相关 API 请参考 setAudioVADStableStateDelegateenableCapturedAudioVADStableStateMonitorenableAudioPrepVADStableStateMonitoronCapturedAudioVADStateUpdateonAudioPrepVADStateUpdate

8. 服务端支持 ServerSecret 平滑迁移能力

如需使用该功能,请联系 ZEGO 技术支持。

支持生成 Token 的密钥,实现 ServerSecret 平滑迁移能力。通过后台配置同时启用两个 ServerSecret,当其中一个 ServerSecret 暴露的情况下,可以平滑迁移到另一个 ServerSecret。

9. 服务端 Token 能力升级

如需使用该功能,请联系 ZEGO 技术支持。

Token 支持加入黑名单:为防止旧 Token 释放后攻击新 Token,新增支持将 Token 加入黑名单。Token 黑名单,是指该 Token 在有效期内的 AppID 下无法使用。

Token 支持通过流 ID 鉴权:为防止通过鉴权后,使用相同 Token 推其他的流,新增支持生成绑定流 ID 的 Token。

10. 服务端支持批量禁止 RTC 推流和批量恢复 RTC 推流

为确保客户端下麦成功,服务端新增批量禁止 RTC 推流和批量恢复 RTC 推流能力。

调用批量禁止 RTC 推流接口,可以批量禁止指定流 ID 推送到 RTC 服务,禁止推流操作会向正在推流的客户端和正在拉流的客户端发送推流被禁止的通知。调用批量恢复 RTC 推流接口,可批量恢复被禁止推往 RTC 媒体服务的流 ID。

相关服务端 API 请参考 批量禁止 RTC 推流批量恢复 RTC 推流

改进优化

  1. 优化了本地和远端用户的上下行网络回调 [onNetworkQuality] 的处理逻辑
    g705ba516f7(2021-04-09 发布) 至 6.5.0 版本的处理逻辑为:

    1. 自身必须既推流又拉流,才会收到自身的网络质量回调。
    2. 当拉一条流时,推流端有拉流且推流端在自己所在房间内,才会收到该用户的网络质量。

    6.6.0 及以上版本的处理逻辑为:

    1. 自身只要推流或拉流,就会收到自身的网络质量回调。
    2. 当拉一条流时,推流端在自己所在房间内,就会收到该用户的网络质量。
  2. 默认最大推流通道数量由 2 路新增到 4 路
    6.6.0 之前版本默认最大推流通道数量为 2 路,如需支持更多则需要 ZEGO 技术支持。
    为了配合实时信令功能,该版本默认最大推流数新增至 4 路。

  3. 优化了反初始化 SDK 后,再次初始化 SDK 时,wakeup 次数会递增的问题

  4. 转推地址长度限制扩容
    混流转推地址长度限制由 512 字节扩展到 1024 字节。

  5. 优化了媒体播放器播放 AAC 格式的文件时,获取播放进度不准确的问题

  6. 官网的 SDK 包默认支持 VP8、MP3 编解码,从该版本开始,不再需要特殊编包

2021-10-26 Version:6.5.1

问题修复

  1. 修复文字水印为空导致 MixStream 混流报错的问题
2021-10-15 Version:6.5.0

新增功能

1. 新增电音音效

电音音效指的是可以让人说话、唱歌的声音,经过处理后带有电音的效果。该功能常用于 KTV、语聊房场景。

在 initSDK 初始化 SDK 之前,调用 setElectronicEffects 接口可以开启电音音效,并可根据需要设置不同模式的电音调式以及对应调式的起始音高。未调用此接口时,默认关闭电音音效。

开发者也可以通过 setVoicePreset 接口预设常见的电音音效,目前支持预设 C 大调电音音效、A 小调电音音效、和声小调电音音效。

2. 新增 Token 过期管理机制

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

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

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

相关 API 请参考 setTokenonTokenWillExpired

3. 支持实时更新混流文字水印

直播使用混流时,可以在混流输出画面上实时更新水印,以达到实时更新混流的时候同步刷新水印。该功能常用于在线教育场景,例如上课时在混流画面上标注每条输入流对应的老师名字或者班级名字。

ZegoMixStreamConfig 的混流输入列表中新增 ZegoLabelInfo 字段,可设置混流输入视频画面上的相关文字水印信息,进行混流的每一条流,只支持一个水印。

相关 API 请参考 mixStreamEx

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

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

ZegoMixStreamConfig 的混流输入列表中新增 renderMode 字段,可设置混流输入视频画面的渲染模式,支持“填充模式”和“适应模式”。

相关 API 请参考 mixStreamEx

5. 支持设置麦克风和 App 采集音频的音量

iOS 平台通过 Replaykit 采集手机屏幕画面、App 音频、麦克风音频,并通过 SDK 共享出去时,可以分别调节 App 音频的音量和麦克风音频的音量。以实现在不同场景下,灵活选择突出主播人声或 App 声音。该功能常用于游戏直播场景。

开始预览或推流成功后,可以通过 setReplayLiveMicVolume 接口设置麦克风采集的音频音量,通过 setReplayLiveAppVolume 接口设置 App 采集的音频音量,两者的音量取值范围都为 0 ~ 200,默认值为 100。

6. 支持 arm64 Simulator

从此版本开始支持交付 arm64 模拟器架构,以方便开发者在搭载 Apple Silicon 的 Mac 上使用 iOS 模拟器来开发和调试。

改进优化

  1. 优化了混流精准对齐功能 推流端,配置混流时可以指定某些流进行精准对齐。
  2. 优化了混流精准对齐的接口调用逻辑 调用 startPublishing 接口且将 ZegoPublishStreamParams 中的 forceSynchronousNetworkTime 值设置为 1,则 SDK 内部会等到 NTP 网络时间同步完成后再推流,此时再调用 setStreamAlignmentProperty 接口开启混流精准对齐功能。
  3. iOS 产物结构变更 从此版本开始,由于 iOS 支持了 arm64 模拟器架构,SDK 产物默认以 XCFramework 形式交付,详情可参考 “从 2.8.0 之前的版本升级以后,Xcode 编译报错如何处理?”
  4. 优化了录音棚、KTV、留声机的音效效果

问题修复

  1. 修复了 SDK 获取网络状态时触发的 Crash
  2. 修复了媒体播放器播放地址过长被截断的问题
2021-09-09 Version:6.3.0

新增功能

1. 支持 H.265 编解码

H.265 编解码完整方案上线,适用于单主播直播和多人互动直播场景。开发者可以在编码或混流时输出 H.265 格式的视频码流,H.265 在同等画质下相对于 H.264 节约了 30% 的流量。
相关 API 请参考 isVideoEncoderSupportedisVideoDecoderSupportedenableH265EncodeFallbackonVideoEncoderChanged

使用该功能前请先联系 ZEGO 技术支持。

2. 支持回调远端扬声器设备状态

与远端用户连麦成功后,当远端扬声器设备状态发生变更时,例如开/关扬声器,可以通过 onRemoteSpeakerStatusUpdate 回调监听。

3. 媒体播放器支持倍速播放

在加载资源完成后,调用 setPlaySpeed 接口可以设置媒体播放器的视频播放倍速,支持 0.5 ~ 2.0 倍,默认为 1.0,即正常速度。

4. 混流支持空间音频能力

使用混流功能时,支持通过 audioDirection 参数设置每路音频流的空间音频效果。

改进优化

  1. 优化耳返功能,使耳返的延迟缩短至 50+ ms

  2. 扩大了广播消息和弹幕消息的容量,从此版本开始,支持发送长度更大的消息(默认限制为 1 KB)

    如有需要请联系 ZEGO 技术支持。

问题修复

  1. 修复偶现连麦看不到画面的问题
  2. 房间流新增失败时回调 2 次推流失败回调
  3. 修复偶现播放没有声音的问题
2021-08-20 Version:6.1.2

问题修复

  1. 修复登录房间耗时可能较长的问题。
2021-08-09 Version:6.1.0

新增功能

1. 媒体播放器支持硬解

某些机型在使用软解时,手机可能存在发烫的情况,媒体播放器新增优先使用硬解的功能,可降低 CPU 消耗,为系统节约资源开销。

新增接口 requireHWDecoder

2. 支持统计从 CDN 拉流的视频卡顿率和音频卡顿率

联系 ZEGO 技术支持开通该配置,可在拉流质量回调中监听视频卡顿次数、累计视频卡顿次数、累计视频卡顿比例、累计视频卡顿时长和音频卡顿次数、累计音频卡顿次数、累计音频卡顿比例、累计音频卡顿时长。其中,累计卡顿不会去除对端由于设备关闭造成的卡顿。

相关接口 onPlayQualityUpate

3. 声浪回调支持检测是否有人声

开发者在监听声浪回调时,往往只关注人声部分,SDK 在声浪回调中新增流中是否包含人声的检测功能。

新增接口 enableVADMonitor,设置 true 开启检测,可在 onCaptureSoundLevelUpdate 回调中通过 vad 判断对应的流是否包含人声。

4. 媒体播放器支持播放二进制文件

当开发者已经将播放数据写入内存后,可直接使用媒体播放器进行播放,无需再写成文件进行播放。

新增接口 startMediaData:startPosition:startMediaData:dataLen:startPosition:loadMediaData:startPosition:loadMediaData:dataLen:startPosition:

5. 拉流质量回调新增 MOS 音质评分

对音频质量比较关注时,可通过拉流质量回调新增的 MOS 音质评分字段了解当前音频的质量。

MOS 值 音质评价
大于 4.0
音质佳,清晰流畅。
3.5 ~ 4.0
音质较好,偶有音质损伤,但依然清晰。
3.0 ~ 3.5
音质一般,偶有卡顿,不是非常流畅,需要一点注意力才能听。
2.5 ~ 3.0
音质较差,卡顿频繁,需要集中精力才能听清。
2.0 ~ 2.5
音质很差,偶有杂音,部分语义丢失,难以交流。
小于 2.0
音质非常差,杂音频现,大量语义丢失,完全无法交流。
-1
未知。

onPlayQualityUpate 回调新增 “mos” 参数。

改进优化

1. 关闭摄像头且在发送 SEI 的情况下,可通过联系 ZEGO 技术支持配置,不触发首帧渲染

2. 拉流路数配置优化,此版本 SDK 默认支持 50 路拉流,运行期会默认设定为 12 路拉流

开发者需要支持超过 12 路拉流时,请联系 ZEGO 技术支持设置。

3. 屏幕采集时对编码进行优化,降低码率波动

4. 明文日志中新增 CDN 拉流每个阶段耗时

5. 当指定日志路径无法写入时,将日志写在默认日志路径下

当用户在使用某些安装方式时,可能会无法自动生成日志文件夹,导致无法生成日志。SDK 优化日志写入方式,在发生此类异常时,日志可在默认路径下生成。

问题修复

  1. 修复特定条件下的崩溃问题

  2. 修复可能的内存泄漏问题

  3. 修复上传日志耗时久的问题

2021-07-09 Version:g1c747fe8b2

新增功能

1. 支持获取 NTP 时间

在进行多端同步行为或耗时统计时,需要网络时间同步。SDK 新增获取 NTP 时间功能,可通过 “getNetworkTimeInfo” 接口获取 NTP 时间戳。

使用该功能前请先联系 ZEGO 技术支持。

2. 新增混流自动精准对齐功能

基于 ZEGO 服务器的 NTP 时间,在混流时自动对齐各路流的播放时间。

使用该功能需要先通过 enablePublishStreamAlignment 开启校准网络时间,再通过 streamAlignment 开启自动精准对齐。

使用该功能前请先联系 ZEGO 技术支持。

3. 媒体播放器支持文件自定义读取

新增 setMediaPlayerFileReaderDelegate 接口,用于扩展文件读取操作,可在播放文件前进行自定义操作,比如使用自己的库对加密文件进行解密。

4. 支持摄像头关闭时推送图片

关闭摄像头时,支持持续推送 JPEG/JPG、BMP 和 HEIF 格式的静态图片。例如,主播退后台的时候,会主动关闭摄像头,此时观众侧需要展示主播暂时离开的图片。

新增 setDummyCaptureImagePath 接口,用于设置关闭摄像头时所推静态图片的路径。

5. 支持获取指定流 ID 的发布者信息

新增 getUserByStreamID 接口,可获取到指定流 ID 对应的发布者信息。

改进优化

  1. 优化媒体播放器,调用 seekTo 接口指定播放进度的误差缩短到 10ms

  2. 优化帧序列检测,不再过滤 B 帧

  3. 优化日志打印,删除一些无用日志

  4. 优化媒体播放器、音效播放器,支持读取带有 “file://” 前缀的文件路径

  5. 优化音频内部渲染,支持渲染单通道音频

问题修复

  1. 修复媒体播放器先最小化再最大化后画面异常的问题

  2. 修复打开文件时报错的问题

  3. 修复重复设置 view 导致画面闪烁的问题

  4. 修复快速切换前后摄像头导致画面异常的问题

  5. 修复只推音频且发送 SEI 情景下录制发生异常的问题

  6. 修复停止拉流后最后一帧画面显示异常的问题

  7. 修复推流过程中插入耳机出现耳返异常的问题

2021-06-18 Version:gb6c19ce606

新增功能

1. 支持登录房间和用户房间内推流鉴权

用户权限控制指的是用户登录房间,或是在房间内进行推/拉流等操作时,ZEGO 服务端根据用户登录时携带的 Token 参数,判断用户是否有对应的权限,避免因权限控制缺失或操作不当引发的风险问题。 目前仅支持用户登录房间和用户房间内推流两个权限的校验。

新增接口 setToken,新增回调 onTokenWillExpired

相关文档请参考 用户权限控制

  • onUserUpdate 回调新增了房间 ID 的字段,开发者在替换新版本 SDK 时需要考虑兼容问题。
  • onCustomTokenWillExpired 回调改为 onTokenWillExpired,开发者在替换新版本 SDK 时需要考虑兼容问题。

2. 优化多房间功能

同一个用户可以同时加入多个房间,并同时在多个房间内推流、拉流、发送实时消息和接收消息回调。

新增 setRoomMode 等接口。

相关文档请参考 多房间

2021-06-09 Version:g1931267fad

新增功能

1. 高清预览模式下预览截图分辨率比例可与编码比例一致

在高清预览模式下,为了减少性能消耗,以往版本在摄像头采集后不会立即进行裁剪,导致高清预览模式下分辨率比例与编码比例不一致,最终导致此时的截图比例异常。从此版本开始,可以选择在采集后立即进行裁剪,保证比例一致。

setConfig 接口新增 "snapshot_preview_version=1" 配置,取值为 1 会根据编码分辨率做裁剪,取值为 0 则不会。

2. 支持指定推流通道使用硬编解

由于不同手机支持并发硬编解的数量不同,若该手机并发推流或拉流数超过限定硬编解数量,则会按先后顺序分配硬编解能力。为解决只能默认分配问题,新增自定义设置硬编解功能。

新增 requireHardwareEncoderrequireHardwareDecoder 接口。

3. 媒体播放器新增对 MKV 格式的支持

改进优化

  1. 优化初始化 SDK 和登录房间耗时,首次初始化 SDK 耗时和首次登录房间耗时降低 50% 以上。

  2. 优化 ZegoAPIAudioDeviceMode 切换时机,可以随时切换音频设备模式。当语聊房用户涉及开黑模式或音乐模式时,可在推流后切换音频设备模式,保证开黑模式下的回声消除效果,保持音乐模式下的高音质。

  3. 优化外部渲染逻辑,在进行上下翻转、水平翻转、旋转操作时,直接影响外部渲染数据变化。

  4. 在关闭接收音频数据后,再开启接收音频数据,通过 setConfig 配置后,可以收到首帧回调。

  5. 混流转单流转推 CDN 时,转推成功后,会自动补 I 帧,避免出现短暂黑屏的情况。

  6. 优化媒体播放器,seek 后进行暂停/恢复操作生效。

问题修复

  1. 修复偶现的停止拉流后最后一帧画面显示异常的问题。

  2. 修复设置开启外部渲染时找不到对应流通道的问题。

  3. 修复硬编码本地域名异常问题。

  4. 修复应用掉线时重复调用登录、推流、拉流接口不报异常的问题。

  5. 修复先设置编码分辨率后设置朝向导致采集分辨率修改的问题。

  6. 修复摄像头抛出重复的错误码导致重试中断的问题。

  7. 媒体播放器修复部分文件加载后没有回调的问题。

  8. 修复 view 无法布局导致遗漏 VideoSizeChange 通知的问题。

2021-05-10 Version:g84e595a166

新增功能

1. 新增空间音频功能

空间音频能够感知空间内 360° 的声音位置。开发者可以通过空间音频功能在音视频房间内营造更逼真的“座位”效果,用户可以通过空间音频感知声音的来源方向,还原线下场景。适用于语聊房、剧本杀和线上会议等场景。

新增 enablePlayVirtualStereo 接口,用于设置特定 StreamID 的音源角度。

2. 新增视频推流预览裁剪和拉流渲染裁剪功能

在推流预览前和拉流渲染前,支持针对视频进行自定义裁剪,裁剪后的画布仍然是矩形。适用于推流终端设备是 iPad 的场景,iPad 常常是横向放置,此时摄像头的位置位于左侧或者右侧,导致观众看到的画面里主播不居中,视频裁剪功能能够按照摄像头采集画面进行自定义裁剪,使得在推流预览或拉流渲染时,主播画面总是位于画面的中间。

新增 setPreviewCropRect 接口,用于推流端的预览视频画面裁剪,可在预览前和预览中调整。

新增 setViewCropRect 接口,用于拉流端的渲染视频画面裁剪,可在拉流渲染前和拉流中调整。

改进优化

  1. 优化流控策略,开启流控功能的码率、帧率和分辨率自适应,在上行网络可用带宽低至 150 kbps 时仍可保证正常推流

  2. 优化推拉质量回调中 quality 字段计算公式,能够更客观地反映推流客户端的网络情况

  3. 优化音频观察器的逻辑,功能的开关与视频采集设备解耦,即该功能的开关不会引起视频设备的开关

  4. 优化媒体播放器的 Seek 逻辑,Seek 成功后直接渲染对应时刻的音视频内容,忽略缓冲区的音视频数据

问题修复

  1. 修复了媒体播放器连续快速多次 Seek 导致卡死的问题

  2. 修复了屏幕采集时画面撕裂的问题

  3. 修复了更新房间内流附加信息失败的问题

2021-04-22 Version:g35b67229fe

问题修复

  1. 修复上架苹果官方应用商店报错的问题
2021-04-09 Version:g705ba516f7

新增功能

1. 新增混流场景下的焦点语音功能

在混流时,开发者通过设定拉流端要突出的目标流,实现了在多人同时说话的嘈杂环境下,突出特定用户的语音。例如在会议场景下,可以保障重点人物发言的声音。

在调用 mixStreamEx 接口开启混流时,将传入的 ZegoMixStreamInput 混流配置参数中的 audioFocus 设置为 “true”,即可指定该流为焦点语音流。

新增 ZegoMixStreamInput 结构体 audioFocus 成员。

2. 新增人声偏移功能

混音场景下,新增调节麦克风声音的偏移值。在老年 KTV 场景中,演唱者声音总是慢于伴奏,可通过人声偏移功能,让人声与伴奏的混音处于相同步调。

新增接口 setAudioCaptureShiftOnMix

3. 新增本端和远端的上下行网络质量回调

新增本端上下行网络质量回调,默认每两秒回调一次。新增远端用户的上下行网络回调,每个拉取的远端用户每两秒回调一次。可通过此功能分析链路上网络情况,第一时间了解本端和远端用户的网络状况。

新增接口 onNetworkQuality

4. 新增质量数据回调

新增下行码率,统计周期内下行的音视频平均码率。新增下行音频平均码率,统计周期内下行音频的平均码率。新增下行视频平均码率:统计周期内下行视频的平均码率。新增累计音频卡比例,统计本地用户拉取所有音频流卡顿占总有效时长的百分比。新增累计视频卡比例指标,统计本地用户拉取所有视频流卡顿占总有效时长的百分比。

ZegoAPIPlayStats 新增参数 rxKBitRaterxAudioKBitRaterxVideoKBitRate,相关接口请参考 onPlayStatsUpdate

ZegoApiPlayQuality 新增参数 audioCumulativeBreakRatevideoCumulativeBreakRate,相关接口请参考 onPlayQualityUpate

5. 新增发布首帧音频回调和首帧视频回调

在成功发布首帧音频和首帧视频时,监听该接口可以触发回调。可通过该回调计算音频和视频发布耗时和成功率。

新增接口 onSendLocalAudioFirstFrameonSendLocalVideoFirstFrame

6. 音频录制中新增录制本地音频和拉流的音频选项

在音频录制中,本地不推流的情况下,支持录制本地采集、媒体播放器播放、远端拉流的声音。通常在 AI 课堂中,学生对 AI 视频学习并朗读,并需要录制朗读内容的场景下使用。

7. 直推 CDN 新增支持重试时刷新推流地址和鉴权参数

在直推 CDN 场景中,推流中断重试时,CDN 鉴权参数过期,无法立即返回错误。新增刷新重试时的推流地址和鉴权参数,可在鉴权参数过期前定时调用此接口刷新鉴权参数。

相关接口请参考 setPublishConfig

8. 新增音频观察器

在 SDK 采集到音频数据后,音频观察器可将音频数据通过回调直接传递给开发者。在需要接入语音识别的场景中,开发者可通过音频观察器获取到 SDK 采集的数据。

新增接口 startAudioObserverstopAudioObserversetAudioObserverDelegate

9. 新增重置音频会话状态能力

在 iPadOS 14 下,基于一些系统因素,导致 AVAudioSession 的实际状态与实际参数不一致,从而出现音量变小的情况,可通过调用本接口恢复音量。 新增接口 recoverAudioSessionMode

改进优化

1. 技术优化,将流媒体与房间分离

房间作为可选编译选项,可以编译成纯流媒体 SDK 形式。

2. 建立设备黑名单

可避免某些手机开启系统耳返后,无法使用 OpenSL ES 采集,导致的异常。

3. 建立设备白名单

考虑到某些设备系统前处理能力不足,建立设备白名单,名单内设备只能使用 general 模式。

4. 优化登录房间接口,过滤用户名字段开头的空字符

5. 优化网络质量回调增加未知状态

在某些场景下,无法判定网络质量回调时,使用未知表示。

问题修复

  1. 修复在可靠消息发送空字符串后,再次发送可靠消息报错的问题
  2. 修复初始化 SDK 时,弹出权限申请框的问题,优化弹出时机
  3. 修复某些机型下切换后台渲染异常的问题
2021-03-18 Version:g2b29d9a508

问题修复

  1. 修复已知问题
2021-03-09 Version:g52d36e000f

新增功能

1. 新增编码优化功能

在使用 H.264 编码的屏幕共享场景中,提供编码优化的能力,提升屏幕共享的清晰度,在快速翻动滚动条的时,文字会更加清晰。

新增接口 enableScreenCaptureEncodeOptimization ,设置编码优化开关。

2. 媒体播放器、音效播放器新增设置文件播放次数功能

在使用媒体播放器、音效播放器时,可以给需要播放的资源设置循环播放次数。

新增接口 setLoopCount,进行设置循环次数。

3. 支持首次请求柔性时,配置域名为 HTTPS 的方式

新增 setConfig("transform_http_to_https_on_init=true") ,控制原本代码固定使用 HTTP 的请求是否改为 HTTPS,true 为改为 HTTPS,false 为不改为 HTTPS。

4. 拉流端提供关闭所有音频、视频的功能

当需要一次性关闭所有音频或视频时,可通过该功能实现。

新增接口 activateAllAudioPlayStreamactivateAllVideoPlayStream,设置是否接收音频、视频数据。

5. 新增控制选择摄像头帧率范围的配置

采集帧率在弱光环境下帧率会太低,SDK 优化后会往高帧率选择。新增配置控制摄像头选择帧率范围,可以选择低帧或高帧的效果。

新增 setConfig("camera_low_light_boost=true"),配置高低帧效果,true 为低帧率效果,false 为高帧率效果。

改进优化

  1. 支持 username 为空时登录房间

  2. 优化心跳触发用户列表拉取

  3. 优化流更新触发流列表拉取

  4. 优化心跳控制打散请求

  5. 外部采集增加线程防止卡死采集

  6. 支持任何时刻切换视频内外采集

  7. 媒体播放器支持播放 RTMP 协议流媒体

  8. 纯音频场景下,优化本地录制功能,在放弃麦克风使用时新增回调

  9. 拉流使用外部渲染时支持截图功能

  10. 停止推拉流后,支持 channel 中音量大小重置

  11. 优化 DNS 解析逻辑

问题修复

  1. 修复打印 appID 溢出的问题

  2. 修复时间回退可能导致 SDK 认为心跳超时的异常问题

  3. 修复销毁 QUIC 连接时无响应的问题

  4. 修复 OpenH264 编码在 swf 无法正常播放问题

  5. 修复媒体播放器播放有跳帧的问题

  6. 修复存在设备无法采集视频的问题

  7. 修复播放器中途修改回调格式的问题

  8. 修复本地录制偶现失败的问题

  9. 修复 Log 可能无效的问题

  10. 修复多个媒体播放器同时播放卡住的问题

  11. 修复媒体播放器特定情况下播放失败的问题

  12. 修复 view 移除属性监听访问越界的崩溃问题

  13. 修复 iPad 在 general 模式下运行可能声音偏小的问题

  14. 修复混响破音的问题

  15. 修复拉流画面有条纹并且画面最底部有绿边的问题

2021-02-04 Version:g1f9d0b0526

问题修复

1. 修复已知问题

2021-01-27 Version:g07c70342f1

新增功能

1. 新增棱镜相关质量上报

新增棱镜相关质量上报,方便开发者及时发现问题、定位问题、解决问题,更好、更全面地提升用户体验。

问题修复

1. 修复摄像头低概率出现停止采集数据的问题

2. 修复视频外部采集概率出现崩溃的问题

2021-01-15 Version:g69f049a347

问题修复

1. 修复已知问题

2021-01-12 Version:g48fff6736f

新增功能

1. 新增多人语音通话中焦点语音功能

多人语音场景中,本端可设置需要在拉流里音量突出的流 ID。可搭建一个与现实课堂极为接近的教课空间,无论学生齐声朗诵还是课题抢答等,在热烈的课堂氛围中也可保证老师与学生以自然的方式进行互动。

新增接口 setAudioMixMode,设置拉流中突出音量的音频流。

2. 新增多种音效效果

setVoicePreset 接口新增多种预设声音音效:清澈、高亢、嘹亮、饱满、假音、圆润、低沉、浑厚、女活力,增加实时语音趣味性。

setReverbPreset 接口新增多种预设混响音效:嘻哈、飘渺、3D人声、留声机,方便用户烘托氛围。

3. 视频内部采集支持设置旋转角度

推流端启用视频内部采集旋转功能,可设置视频输出的画面方向。在教育场景中,可调整使用高拍仪设备的拍摄角度,提升教师端与学生端画面视角观看一致的体验。

新增接口 setCaptureFrameRotation,设置逆时针旋转 0°(默认值)、90°、180°、270°,支持在推流过程中使用。

4. 拉流质量回调新增音频和视频卡顿统计指标

新增多个拉流质量回调指标:音频和视频卡顿累计次数、音频和视频卡顿累计时长、音频和视频解码累计时长。方便开发者了解拉流端在 RTC 通话场景中音频和视频的质量,通过数据洞悉业务表现。

ZegoPlayQuality 新增 6 个卡顿统计指标枚举值:audioCumulativeBreakCountaudioCumulativeBreakTimeaudioCumulativeDecodeTimevideoCumulativeBreakCountvideoCumulativeBreakTimevideoCumulativeDecodeTime

5. 新增流控触发模式

1v1 场景下新增触发流量控制的功能,设置触发流控的条件后,远端网络拥塞时推流端可限制推流的码率。在 1v1 秀场直播场景中,网络好的主播进行直播时,可保障该主播的观众观看体验。

新增接口 setTrafficControlFocusOn,可设置 ZEGO_TRAFFIC_CONTROL_FOCUS_ON_REMOTE 将远端网络质量作为关注因素,最后通过接口 enableTrafficControl 控制是否因为远端网络状况差而启动流量控制。

6. 新增查询摄像头权限状态的功能

新增查询摄像头权限状态功能,方便开发者实现业务开启前的设备检查,确保视频通信业务顺利开展。

新增接口 getCameraPermissionStatus,检测摄像头权限状态。

7. 新增设置拉流缓存区间值功能

新增设置拉流缓存区间值功能,指定播放缓存自适应调整的区间范围,开发者可根据场景进行设置。

新增接口 setRecvMinBufferLevel,设置拉流播放缓存自适应调整的区间范围。

改进优化

1. 优化远端用户退出房间后设备状态更新回调结果中流 ID 信息为空的现象,停止拉流后不回调远端设备状态变化事件

2. 优化推拉流质量回调的时间周期设置

3. 优化媒体播放器拖动播放位置后可能出现状态错乱的现象

问题修复

1. 修复麦克风设备频繁开关时对麦克风软件静音(EnableMic)造成影响的问题

废弃接口

1. 外部音频采集模块即将废弃 enableExternalAudioDevice 和 setAudioSrcForAuxiliaryPublishChannel 接口,推荐使用 setAudioSource 接口

2. 混流模块即将废弃 mixStream 和 setSoundLevelInMixedStreamDelegate 接口,推荐使用 mixStreamExsetMixStreamExDelegate 接口

2020-12-31 Version:g51885ce1c9

问题修复

1. 修复已知问题

2020-12-15 Version:gfc9e4cb695

新增功能

1. 新增端到端延迟质量回调功能

推流端启用延迟测量功能,通过拉流端回调监控端到端时延的状态,可用于在音视频通话、直播场景中观测端到端时延,助力服务质量评定。

推流端 enablePeerToPeerLatencyProbe 开启延迟测量功能,拉流端新增设置监听方法 setPeerToPeerLatencyProbeDelegate,实现端到端时延测算。

2. 媒体播放器支持播放文件的媒体次要信息回调

播放文件的媒体次要信息,可用于录制文件业务审查。

媒体播放器新增设置播放文件 SEI 信息回调方法 setMediaSideDelegate,回调数据信息和播放器序号。

3. 新增音视频通话的房间会话 ID 信息

多个用户在房间内进行音视频通信,每一次音视频通信都会有唯一的 RoomSessionID,标识房间内首个用户发起音视频通信到最后一个用户结束通信的持续通信。可用于通话质量评分、通话问题诊断等场景中。

新增回调接口 onRoomInfoUpdated 可获取当前通信的 RoomSessionID。

4. 外部采集新增设备状态变更事件的同步

在外部采集场景下,可通过 setStatusReason 接口将推流端设备状态同步到拉流端。

改进优化

1. 优化媒体播放器,可支持播放和加载时指定新开始的播放位置

2. 优化日志打印功能,支持明文日志输出到控制台以及写本地日志文件

3. 优化 AGC 模拟增益场景中,退出服务后无法恢复原始声音音量的现象

启用方式为 setConfig:("recover_ori_device_volume=true"),默认值为 false。

4. 优化拉流端 Jitter 最大时长

提供 setConfig:("play_buffer_max_cache_interval_ms=5000") 控制 Jitter 最大缓存时间上限,默认值为 5 秒。

问题修复

1. 修复拉流端首次拉流时无法接收到对端设备状态更新事件的问题

2. 修复录屏音画不同步的问题

3. 修复从 CDN 拉流收不到媒体次要信息的问题

4. 修复内部采集预览回调首帧访问野指针的崩溃问题

5. 修复停止摄像头无捕获异常处理导致的崩溃问题

6. 修复某些弱网网络下用户登录房间一直失败的问题

7. 修复特定采样率转换失败导致用户声音无法被其他人听到的问题

8. 修复音效播放器设置指定的播放进度时偶现爆音的问题

9. 修复媒体播放器播放部分视频文件出现的崩溃或者花屏的问题

废弃接口

1. 废弃 ReliableMessage 模块,推荐使用 ZegoRoomExtraInfo 模块

2. 即将废弃 setCamExposurePoint 接口,推荐使用 setCamExposurePointInPreview 接口

2020-11-25 Version:gdb1af73694

问题修复

1. 修复音频采集多路流场景下,主通道以外的音频通道采集失败的问题

2020-11-09 Version:g629accf06e

新增功能

1. 新增音视频帧时间戳差值参数

拉流质量回调中新增字段 avTimestampDiff(int 类型),用于快速诊断拉流过程中音画不同步的现象,开发者可依据此信息实现业务监控和预警。

2. 新增多种音效效果,增加实时语音趣味性

新增 setReverbPreset 预设混响效果接口,预设音乐厅、录音棚、地下室、KTV、流行、摇滚、演唱会等多种混响效果,方便用户烘托气氛。

新增 setAdvancedReverbParam 自定义混响接口,支持实现更专业的调音效果。

setVoicePreset 新增磁性男、清新女 2 种美声变音效果,增添用户的声音魅力。

改进优化

1. 优化房间用户更新回调 onUserUpdate 的逻辑

用户首次登录房间时,可回调房间内全量用户的列表;用户处于房间内时,可接收房间内更新的增量用户列表。

2. 优化 activateAudioPlayStream 和 activateVideoPlayStream 调用时机

activateAudioPlayStream 和 activateVideoPlayStream 接口在拉流前和拉流后设置均能生效。

3. 优化媒体播放器加载资源文件的地址类型

媒体播放器支持加载 host 为 IP 地址的资源文件。

4. 调整本地日志文件大小范围

通过 setLogDirAndSize 接口可设置本地日志文件大小在 1M-100M 之间,文件大小默认值为 5M。

5. 外部采集 texture2D 和 OES 支持角度和旋转矩阵的设置

6. 媒体播放器新增对 m3u8 格式的支持

问题修复

1. 修复 MediaRecorder 模块在反复快速初始化 SDK 过程中崩溃的问题

2. 修复重复登录同一个房间出现的转推失败,没有触发流创建的问题

3. 修复 APP 被挂起后,SDK 无法监听到网络状态变化,导致没有及时更新网络状态的问题

4. 修复多次切换前后台,导致在前台的时候系统中摄像头回调事件被打断的问题

5. 修复外接 ASMR 设备之后才启动引擎,导致拉流端双声道无效的问题

6. 修复使用 FFmpeg 推流的场景下,客户端拉流端有音频但没有视频画面的问题

7. 修复 uploadlog 接口上报日志出现部分错误信息的问题

2020-10-15 Version:gfa5bc0e5b

新增功能

1. 新增流删除原因

流删除增加类型 streamDeleteReason,说明当前流删除的原因,主要分为主动关闭和被动关闭两种情况,开发者可根据实际业务情况对流删除情况进行处理。

2. 新增变音效果

新增汽车人、AI 机器人、外国人、空灵 4 种变音效果,轻松创建特色音效,使用户的声音更加妙趣横生。在语音场景中,营造好友语音之间的搞怪气氛,增强娱乐性。

新增接口 setVoicePreset:,提供 4 种枚举值指定设置。

3. 新增外部采集的码流控制

在外部采集时,新增流控信息的回调,开发者可根据码流的流控信息主动适配网络情况,提高抗弱网能力。

新增流控回调接口 setTrafficControlCallback:channelIndex:,该接口仅在外部采集的使用场景下有效。

改进优化

1. 优化 SEI 发送逻辑,在不发送视频数据时,即设置 enableCamera = true && muteVideoPublish = true 的情况下,支持正常发送 SEI

2. 优化在登录房间成功前启动预览导致登录耗时过长的问题

3. 媒体播放器内部启用快速 seek 配置,优化媒体播放器加载 MP3 文件缓慢的现象

4. 升级第三方库,保障 SDK 安全质量水平,FFmpeg 升级到 4.2.2 版本

问题修复

1. 修复 iOS 渲染初始化时概率出现的崩溃问题

2. 修复 iOS 端拉流时视频画面出现短时间的黑色背景问题

3. 修复 iOS 端媒体播放器指针释放异常的问题

4. 修复少部分用户出现视频编码码率骤降的问题

2020-09-09 Version:gacb976f32

新增功能

1. 新增外部视频采集支持旋转的功能

在推流端,采集预览支持逆时针旋转,提供 0(默认值),90,180,270角度,可根据实际场景调整移动端的横竖屏旋转效果。在拉流端,渲染时采用顺时针角度旋转。在教育场景中,老师使用录屏作为外部采集源会存在旋转使用的过程,旋转功能可帮助调整视频方向。

新增 setConfig:("vcap_external_handle_rotation=false"),默认是true,表示在推流端处理旋转;如果配置false,则会把旋转值传到拉流端。用于调用外部采集接口时,通过 SetRotation() 设置图像旋转角度(CVPixelBuffer 模式)或者 VideoCaptureFormat 中设置图像旋转角度(内存模式)。

2. 新增系统声卡采集频谱的功能

音频频谱功能支持采集麦克风的人声数据和系统声卡的音频数据,并回传给开发者。在直播场景中,主播开系统伴奏放歌,其频谱动画效果可展示给主播自身和观众,增添更多互动玩法和趣味画面。

3. 新增房间附加消息 RoomExtraInfo 模块

房间附加消息 RoomExtraInfo 模块,将替代原有的可靠消息 ReliableMessage 模块。RoomExtraInfo 模块具有更高的稳定性和可靠性,保障机制会保证房间内所有人会收到消息更新。在教育场景中,一堂线上公开课,教师可以更新房间附加消息,通知房间内所有人课程的进行状态,如:开始上课/课间休息/课程结束等,学生在房间内可以稳定及时地收到该消息更新。

注意:两个模块不能同时使用,可靠消息 ReliableMessage 模块计划于12月的迭代版本中废弃。

新增 ZegoRoomExtraInfo 模块。

改进优化

1. 优化 SDK 中部分域名对 DNS 预解析过程

2. 优化多用户同时登录房间可靠消息同步问题

3. 优化在音乐场景下,乐器声和纯音乐的效果,声音更加清晰

问题修复

1. 修复 iOS 音频外部采集时可能出现的未正常工作状态

2. 修复 iOS 中音频硬件资源使用异常的问题

3. 修复 iOS 缩放的使用场景下,设备 CPU 占用高的问题

4. 修复房间和媒体流业务中,推拉流重试时间不准确的问题

2020-08-12 Version:g3575960b7

新增功能

1. 网络探测模块新增下行网络测速功能

可有效帮助用户判断和预测下行网络质量是否良好(目前仅用于预测网络质量)。 如需要网络测速模块功能,请联系 ZEGO 技术支持处理。

新增 startDownlinkSpeedTeststopDownlinkSpeedTest 等接口,用于拉流前进行下行网络测速。

2. 媒体播放器新增缓存到文件末尾的回调

便于掌握媒体播放器的缓存加载情况。在教育场景中,教学视频缓存到达末尾时可能需要提示用户即将播放下一教学视频/开始下一章节等。

在event回调中新增 onReadEoF 回调,当文件缓冲到达文件的末尾时抛出。

3. 新增切换房间功能

该方法可以实现快速切换房间功能,调用后停止上一个房间的推拉流并进入新房间,切换房间成功会收到新房间登录成功的回调。与之前通过调用登出原房间和加入新房间两个接口实现的方法相比,更易用也更高效。

新增 switchRoom 接口,用于从一个房间切换到另一个房间。

4. AudioDeviceMode 下新增 General2模式

相比 Genderal 模式,该模式下会保持对设备的占用,在切换房间时耗时更短。在狼人杀和剧本杀的场景下,使用该模式可以使用户切换房间后推流/拉流时快速发出声音/听到声音。 具体配置可联系 ZEGO 技术支持咨询。

5. 新增预览首帧回调

新增 onPreviewVideoFirstFrame 回调接口,启动本地预览(startPreview)时,渲染出第一帧作为回调抛出。便于使用视频外部采集设备时,掌握开启本地预览的情况。

每个开启预览(startPreview)/结束预览(stopPreview)周期内只会抛出一次首帧回调。期间调用设置预览(setPreview)和开关摄像头(enableCam)不会触发此回调。

改进优化

1. 媒体播放器支持同时播放音视频文件的数量从4个提高到10个

优化重构 MediaPlayer 模块,SDK支持最多创建10个媒体播放器实例,同时播放音视频文件。

2. 优化初始化和反初始化的逻辑

原先 enableMicsetFrontCam 等接口在反初始化后再次初始化SDK时,在主副通道的逻辑不一致,偶现状态没有被重置的情况。优化逻辑后,反初始化SDK后再初始化,所有状态会重置。

3. 混流支持单独调整输入流的音量,默认为100

便于在多路混流时,单独调整某条流的声音音量,解决混流后因为音频来源本身的音量大小差距较大而导致混流后的音频音量不均衡的问题。修改范围为0-200

4. 优化了使用AirPlay投屏的体验

通过配置 SetConfig("air_play_route_to_speaker") ,可在使用AirPlay投屏时,使得声音依旧从手机扬声器播放,解决投屏场景下声音回采的问题。

5. 增加60Hz高通滤波器的配置开关选项

默认打开,用于处理低于60Hz的低频杂音,可通过 setConfig("prep_high_pass_filter=false") 配置关闭。

问题修复

1. 修复初始化SDK后推流前调用耳返接口无效的问题

2. 修复多房间初始化SDK后设置userID,导致多房间登录失败的问题

3. 修复推流的画面卡住时,拉流端切换横竖屏后画面会被拉伸的问题

2020-07-10 Version:gbbac93b4e

新增功能

1、新增支持按通道设置推流延迟模式和推流音频声道数

在推两路流的场景下,两路流的音频编码格式可以按场景分别进行设置,比如秀场直播场景中,单向直播(普通延迟模式)切换成连麦PK(低延迟模式)时,可同时推两路流,避免在同一个推流通道中进行模式切换产生的停顿,提升用户体验。

新增setLatencyMode:channelIndex:接口,支持按通道设置推流延迟模式。

新增setAudioChannelCount:channelIndex: 接口,支持按通道设置推流音频声道数。

2、媒体本地录制新增 AAC 格式

该格式压缩率大,生成的录制文件较小,在线教育场景中,可能需要将音频数据上传至服务器进行分析,而同样的一段音频,编码成 AAC 格式的文件大小比 PCM 格式的文件更小,更易于上传。

ZegoAPIMediaRecordFormat 新增 AAC 格式,用于录制 AAC 格式的纯音频。

改进优化

1、房间消息内容长度限制由 512 字节扩展为 1024 字节,包括房间消息和大房间消息,可用于发送更大长度的信息。

注意:如果此版本之前的 SDK 接收超过 512 字节的消息,会丢弃超过 512 字节的数据

问题修复

1、修复音频设备暂停且在后台的情况下插入耳机,回到前台,恢复音频模块后,声音从扬声器出来的问题

2、修改复音频模块中断、恢复时因时序可能不一致导致音频模块未启动的问题

2020-06-22 Version:g13dcf9bcd

问题修复

1. 修复因设备重构导致音频设备生命周期变短引入的偶现崩溃问题

2020-06-11 Version:g2e9dbf798

新增功能

1、新增拉流画面镜像功能,用户可在拉流后设置镜像,在乐器演奏、书法等需要实际动手,画面需要镜像且推流端为 WebRTC、拉流为原生端内部渲染的场景中可给开发者带来便利

新增enableViewMirror:ofStream:接口,用于设置拉流画面镜像。

2、媒体播放器新增设置缓存相关、设置加载资源超时时间功能,优化播放器体验

(1)新增 setOnlineResourceCacheDuration:andSize:setBufferThreshold:getOnlineResourceCacheStat:andSize: 接口,分别用于设置缓存大小、设置缓冲时间、获取缓存状态,在播放在线资源时可提前缓冲部分。

(2)新增 setLoadResourceTimeout: 接口,用于设置加载资源超时时间,业务层可感知访问超时,方便通知用户进行下一步操作。

3、新增设置对焦模式和曝光模式的功能,与之前版本相比,新增类似系统相机的自动对焦、自动曝光等模式的功能,供开发者选择使用

新增 setCamFocusMode:channelIndex:setCamExposureMode:channelIndex: 接口,分别用于设置对焦模式和曝光模式。

改进优化

1、优化瞬态噪声抑制功能

从算法层面进行优化,提高瞬态噪声抑制效果。

2、重构获取硬件信息模块,优化拉多路流场景下的系统 CPU 性能

问题修复

1、修复媒体录制模块的异步回调崩溃问题

2、修复使用外部渲染时偶现的 bug

新增

废弃

当前版本包含了待废弃,已删除的接口,接口详情请查看 废弃接口 2020/06/09 及 2020/09/09 部分内容。

2020-05-14 Version:ge049c35d5

问题修复

1. 修复系统版本为 10.15 的 Macbook Pro(15-inch)上,插入 USB 和摄像头无法识别的 bug。

2020-05-12 Version:g68b0532ce

新增功能

1. iOS/macOS 媒体播放器新增声道选择和变调控制功能

(1)新增 setActiveAudioChannel:(ZegoMediaPlayerAudioChannel)channel 接口,可以调用接口设置参数进行声道切换,控制只播放左声道的音乐或左、右两个声道的音乐。在KTV 场景下,可以通过切换左右声道来控制只播放伴奏或播放伴奏和原唱。

(2)新增setAudioChannel:keyShift: 接口,可以通过接口设置所需的变调效果,实现对音乐升调或降调。满足音乐爱好者的变调演唱需求。

2. iOS/macOS 新增 UDP 探测和网络测速功能、网络探测功能

(1)在推流前可进行网络测速和 UDP 连通性测试,可有效帮助用户判断和预测上行网络质量是否良好、UDP 连通性是否正常。 新增 startSpeedTest:(int)bitratesetQualityCallbackInterval:(int)intervalstopSpeedTest 等接口,用于网络测速; 新增 startConnectivityTeststopConnectivityTest 接口,用于 UDP 连通性测试。 如需要网络测速和 UDP 连通性测试模块功能,请联系 ZEGO 技术支持处理。

(2)如在推拉流过程中遇到问题,可调用接口进行网络探测,此时将检测所有协议的连通性及 TraceRoute。 新增startNetworkTracestopNetworkTrace 接口,用于网络探测。

3. macOS 新增枚举摄像头采集支持的分辨率功能

新增 getVideoDevCapabilityList:(NSString *)deviceId 接口,可以通过调用接口获取到摄像头所支持采集的分辨率,进而设置正确的分辨率。

4. iOS/macOS 新增智能消噪功能,可消除键盘、敲桌子等瞬态噪音

新增 enableTransientNoiseSuppress:(bool)enable 接口,可消除敲键盘、敲桌子等瞬态噪音,帮助用户获得更好的音频体验。

5. iOS新增 AudioRoute (音频路由)事件变化通知回调

新增 onAudioRouteChange:(ZegoAPIAudioRoute) audioRoute 回调,当有耳机插拔、扬声器和听筒切换等音频路由变化时业务层可感知到,方便通知用户设备相关的变化。

6. iOS新增网络状态回调

新增 onNetTypeChange:(ZegoAPINetType) netType回调,可以根据回调的当前网络状态,提示用户网络状态的变化。

改进优化

1. 外部采集、外部渲染、外部滤镜支持在初始化 SDK 后,推/拉流、预览前设置。

在 SDK 生命周期内可以进行内/外部采集、内/外部渲染、内/外部滤镜的切换,使用上更加灵活。

2. 采集双声道的情况下支持音频3A处理,在 ASMR 等对声音较敏感的场景下给用户带来更好的听觉效果

3. 混流输入流路数限制扩展为16路,即将16路流混成1路流,方便在多路流的场景中使用,比如小班课等

(默认9路,如需要支持更多路数,可联系 ZEGO 技术支持处理)

4. 媒体播放器对于播放带有旋转信息的音视频文件,可自适应旋转为正确方向后进行播放

问题修复

1. 修复采集变声偶现的crash和破音问题

2. iOS修复脸部弱光环境会引起采集帧率降低的问题

2. iOS修复外部渲染引起的crash

3. macOS修复 osx 10.11 无法打开摄像头的bug

新增

废弃预告

2020-04-24 Version:gb8ff47533

问题修复

1. 修复 iOS/Mac 平台下频繁 initSDK、uninitSDK,使用外部采集会概率失效的 bug

2. 修复在弱光环境下,采集帧率会降低的 bug

2020-04-09 Version:g18e243156

新增功能

1. macOS 外部滤镜支持 I420/NV12 格式

外部滤镜视频缓冲区类型 ZegoVideoBufferType 中新增 I420 格式 ZegoVideoBufferTypeAsyncI420PixelBuffer、NV12 格式 ZegoVideoBufferTypeAsyncNV12PixelBuffer 枚举项。

2. iOS/macOS 外部渲染支持透传 CVPixelBuffer 类型

用于优化 iOS 低端机型在高分辨率下的硬解性能。
外部渲染功能类 ZegoExternalVideoRender 中添加设置用于接收 CVPixelBuffer 类型数据的外部渲染协议 ZegoVideoRenderCVPixelBufferDelegate 及对应代理设置接口 setZegoVideoRenderCVPixelBufferDelegate:

3. MediaRecorder 增加质量回调

媒体本地录制代理 ZegoMediaRecordDelegate 新增 onRecordStatusUpdateFromChannel:storagePath:duration:fileSize:quality: 回调。
离线录制时可以通过该回调获取分辨率、帧率等质量信息,及时做容错处理。

4. iOS 新增设置曝光补偿功能

采集设备类 ZegoCamera 新增 setCamExposureCompensation:channelIndex: 接口,用于设置曝光补偿度。
曝光补偿参数可以调节采集画面的亮度,结合对焦功能可实现类似系统相机在对焦时进行曝光补偿度调整的功能。

5. 混音支持分别调节推流和本地播放的音量

改进优化

优化 iOS 音频模块的中断处理逻辑。

问题修复

1. 修复媒体次要信息在关闭视频采集后不发送的问题

修复调用 enableCamera 设置停止视频采集后,音视频形式传输的媒体次要信息无法发送的问题。

2. 修复域名解析失败时可能导致的 Crash

废弃预告

2020-03-09 Version:g54f488a0c

新增功能

1. 转推支持 RTMPS 协议

该功能可将直播流转推到 Facebook ,助力客户生态引流。当前仅部署到海外集群。

2. 流媒体数据端到端加解密

通过推拉流之前设置的对称密钥,进一步强化媒体数据的安全性,密钥设置由外部模块完成,比如客户 App。仅支持 Native SDK 推拉流,不支持转发 CDN、WebRTC、混流客户端和录制客户端。

3. 外部采集支持本地预览

客户使用外部采集功能时无需再自行渲染,方便客户使用。当前仅支持基础功能的渲染,像添加镜像等高级功能暂不支持。

  • 新增 setConfig 配置项,通过设置 [ZegoLiveApi setConfig:@”vcap_external_support_preview=true“] 开启此功能。

4. 媒体播放器音量新增功能

  • 新增 setPlayVolume:接口,设置本地播放音量;
  • 新增 setPublishVolume:接口,设置推流音量;
  • 新增 enableAccurateSeek: 接口,是否开启精确 seek 功能,新增 setAccurateSeekTimeout: 接口进行设置。
    媒体播放器 Seek 时默认 Seek 到指定位置的上个关键帧,会导致重复播放,该功能支持用户 Seek 到指指定位置播放,避免默认模式的重复播放。需要注意的是,为了避免花屏,该功能会从 Seek 位置的上一个关键帧解码到 Seek 位置,所以会增加一定的耗时。

5. iOS ReplayKit 增加接口 handleVideoInputSampleBuffer:timeStamp:,支持由外部传入sample buffer的时间戳

6. 新增设置摄像头对焦和变焦的功能

电商直播场景中有一些卖翡翠、吊坠之类体积较小的商品,通过对焦和变焦的功能,客户可以清晰地展示商品的细节。

7. 外部滤镜新增 CMSampleBufferRef 类型数据的支持

2020年3月9号之前,ZEGO SDK外部滤镜返回的数据类型是 CVpixelBufferRef。而 CVpixelBufferRef 是 CMSampleBufferRef 的一部分,客户可根据 CMSampleBufferRef 类型中的 exif 信息,去实现更多的功能,比如 exif 里的亮度信息去实现用户环境的亮度监测。

改进优化

1. 优化重复调用推流接口,然后不调用停止,继续推不同的 streamID (同一个推流通道)时,房间还会存在上一条流信息的问题。

避免用户监听推流回调时还有不存在的 streamID,进而拉空流的问题。

2. SDK 推拉流质量回调新增当前 App 和系统所使用的 CPU 及内存信息。

完善推拉流回调的内容,客户通过该回调可以获取更多的信息。

3. iOS 的外部采集渲染模块新增 ZegoAPIAudioFrame 类的获取数据和属性接口。

优化音频渲染的用法,客户更方便使用该功能。

问题修复

1. 修复 loginMulti 与 InintSDK 并行时有几率收不到回调的 bug。

2. 修复 重复调用 InintSDK UniniSDK 导致带多房间版本 SDK 的 crash 问题。

3. 修复未调用登录接口时,停止辅路视频预览会导致主路预览也被停止的问题。

API 整理

ge443c0e04 版本中对 API 进行了如下变动。

新增:

2020-02-09 Version:ge443c0e04

新增功能

  1. 新增 setAudioPostpCallback:config:enableAudioPostp:streamID: 接口,支持音频后处理功能。
  2. 新增 getAVCaptureDevice: 接口,获取当前推流使用的采集设备。
  3. 新增 setNoiseSuppressMode: 接口,支持设置降噪等级。
  4. 支持设置推流音频采样率
    通过 setConfig 配置,参数 audio_encoder_samplerate=samplerate,支持的 samplerate 值为 16000/32000/44100/48000。
  5. 音效播放器 ZegoAudioPlayer 新增以下功能
    1)新增 getCurrentDuration: 接口,获取音效的当前进度。
    2)新增 getDuration: 接口,获取音效的总时长。
    3)新增 seekTo:timestamp: 接口,设置音效的播放进度。
  6. 支持拉多路流时的权重设置。
    新增 setPlayStreamFocus: 接口,在网络环境不佳的情况下,尽量保证关注流的播放质量。
  7. 支持音频自动混流 ZegoAutoMixStream
    开启功能后自动输出为一路包含房间内所有的音频流,不用关心房间内流新增删除时的流操作。
  8. 支持双声道采集
    新增 enableAudioCaptureStereo: 用于设置单双声道切换。

改进优化

  1. 推/拉流质量回调添加音频、视频和总字节数的统计信息。
  2. 优化设置相机曝光点的日志打印频率,引擎调整为2s/次,SDK 不打印。
  3. SDK 删除媒体播放器 getDuration , getCurrentDuration 的日志打印。
  4. SDK 删除曝光设置 setCamExposurePoint:channelIndex: 的日志打印。
  5. 优化自动曝光。

问题修复

  1. 修复在没有重复发音频格式的情况下导致重推流音频缺少 config 的问题。
  2. 修复 App 状态为 UIApplicationStateInactive 时,强行渲染导致的 crash。
  3. 修复某些蓝牙耳机无法工作的问题。
  4. 修复解析 http-flv 第一个 Tag 时,放错 jitter 的缓存队列导致的 crash。
  5. 修复使用不同的 streamID 重复调用推流时房间还会存在上一条流信息的 bug。

API 整理

ge443c0e04 版本中对 API 进行了如下变动。

新增:

改动:

2019-12-09Version:gcbdd122c2

新增功能

  1. 支持 1V1 音视频通话场景的下行流控。
    enableTrafficControl:properties: 接口以前只支持推流时的上行流控,12月9号之后的版本将支持客户端推单流拉单流时的下行流控。
  2. 外部视频采集增加设置旋转角度接口。
    外部视频采集码流方式 ZegoVideoCodecConfig 增加 rotation 参数,以设置旋转角度,通过 onEncodedFrame:data config:bKeyframe:withPresentationTimeStamp: 传递给 ZEGO SDK,拉流时,视频画面是旋转角度的朝向。
  3. activateAudioPlayStream 和 activateVideoPlayStream 接口支持 rtmp 和 http-flv 协议。
    activateAudioPlayStream:active:activateVideoPlayStream:active: 以前仅限于从 ZEGO 服务器拉流时可以选择只拉音频/视频流,12月9号之后的版本此功能将适用于从 CDN 拉流。
  4. 音频设备模式添加 communication3 模式,支持下麦后释放麦克风设备。
    setAudioDeviceMode: 设置音频模式增加 ZEGOAPI_AUDIO_DEVICE_MODE_COMMUNICATION3 参数,使用此参数可保证不推流的情况 ZEGO SDK 不会占用麦克风设备。

改进优化

  1. 优化摄像头曝光逻辑,支持使用当前曝光值或者自动调节曝光。
  2. 修正了一些场景的错误码。

问题修复

  1. 修复媒体播放器打开硬解不出帧的 bug。
  2. 修复 AudioPlayer 反初始化时崩溃的问题。
  3. 修复 kickOut 接口兼容性问题。
  4. 修复判断流是否存在的逻辑错误问题。
  5. 修复变量重复定义可能导致未知行为的问题。
  6. 修复无法停止播放 wav 文件的问题。
  7. 修复 uninitSDK 可能 crash 的问题。
  8. 修复外部调用推送重复流名,有几率导致发送2次相同流名的流新增问题。
2019-11-09Version:gc3c7f5327

新增功能

1.新增音频播放器模块
为开发者提供全新的音频播放器 ZegoAudioPlayer,专门针对于音频播放需求,单实例创建,特别适用于音效,背景音乐等多个音频文件同时播放的场景。 2. 媒体播放器模块新增功能
1)新增 clearView 接口,快速实现播放器的清屏能力。
2)新增 setBackgroundColor: 接口,支持设置播放器的背景颜色,定制化实现色彩缤纷的播放器,适用于少儿在线教育。
3)新增 setViewMode: 接口,设置播放控件的显示模式,支持开发者设置需要的播放器显示模式。
4)新增 setAudioPlayDelegate: 回调接口,获取音频数据回调。 3. 控件背景颜色设置功能
1)新增设置预览控件背景色的接口 setPreviewViewBackgroundColor:,支持开发者设置推流端预览控件的背景颜色。
2)新增设置播放控件背景色的接口 setViewBackgroundColor:ofStream:,支持开发者设置拉流播放控件的背景颜色。 4. 断线重连机制增加设置最大重试时间接口,setConfig("room_retry_time=xxx")和setConfig("av_retry_time=xxx"),开发者可以根据场景需要设置最大重试时间。 5. 新增设置推流通道扩展参数接口 setChannelExtraParam:channelIndex:,支持开发者将推流通道设置为 animation。 6. 新增音频推流静音接口 muteAudioPublish: 和视频推流静音接口 muteVideoPublish:,支持设置推出去的视频流或者音频流为静音。

改进优化

  1. 优化了断线重连机制的逻辑,为业务提供更优质的重连服务。
  2. 优化了日志目录,清晰的区分本地缓存目录和日志目录。
  3. 优化 onRemoteMicStatusUpdate:ofStream:reason: onRemoteCameraStatusUpdate:ofStream:reason: 回调,新增 reason 参数。
  4. 优化 ZegoDeviceErrorCode,新增若干个错误码。
  5. 优化 onKickOut:roomID:customReason: 回调接口,新增了字段 customReason
  6. 优化 setConfig: 接口,允许通过 setconfig 接口设置 max_channels

问题修复

  1. 修复快速初始化反初始化导致 SDK 崩溃的问题。
  2. 修复连麦加速时没有拉流质量回调问题,限制最大重试时间最大值。
  3. 修改监听耳机插拔的时机。
  4. 修复断网事件监听。
  5. 修复 wifi 切换 4G 网络时,流通知可能异常的问题。

API 整理

gc3c7f5327 版本中对 API 进行了如下变动。

新增:

改动:

2019-09-09Version:g3161cd976

新增功能

1.多房间功能 新增 ZegoMultiRoom 功能,支持用户进入多个房间进行拉流,帮助开发者实现更多特殊的互动视频场景,如教育超级小班,多房间监控等需要用户灵活加入多房间的场景。注意:SDK 默认不包含此功能,需要下载包含此功能的 SDK。

改进优化

1.日志即将写满回调
ZegoLogInfoDelegate 增加日志即将写满回调 onLogWillOverwrite

2.音效均衡器
ZegoLiveRoomApi 增加音效匀衡器设置接口 setAudioEqualizerGain,提供了频带设置和频带的增益值设置,帮助开发者实现更加优质的音质效果。

3.分层编码新增类型
ZegoVideoCodecAvc 枚举新增 VIDEO_CODEC_VP8 类型。

4.媒体播放器新增设置硬件解码
ZegoMediaPlayer 增加设置硬件编码 requireHWDecoder 接口。

5.媒体播放器新增回调数据格式
 新增 ZegoMediaPlayerVideoPlayWithIndexDelegate 视频播放回调,支持给出 YUV(I420,NV12,NV21) 格式视频帧数据。

6.外部滤镜增加 NV12 类型

7.断线重连机制优化
 为修复已知的断线重连机制出现的问题,对断线重连机制进行全面的优化。

2019-08-09Version:gc68861be

问题修复

  1. 对某些特定场景下推流失败的问题进行了优化。
2019-07-09Version:ge9606fe0

新增功能

  1. 多播放器实例

    ZegoMediaPlayer 模块支持最多四个播放器实例,支持播放音乐文件,提供播放进度的通知等;便于预加载,有效降低切换内容的首帧时间。

改进优化

  1. 拉流代理 ZegoLivePlayerDelegate 中增加了5个回调:
  • onRenderRemoteVideoFirstFrame: 在拉流成功后,通知所拉视频流的首帧视频已完成渲染,方便了解视频流首帧的渲染情况和渲染的时长。
  • onRemoteCameraStatusUpdate:ofStream: 通知所拉流即推流端的摄像头开/关状态,适用于了解远端是否主动开关摄像头,能够区分远端无视频画面是关闭了摄像头导致还是网络异常等情况导致。
  • onRemoteMicStatusUpdate:ofStream: 通知所拉流即推流端的麦克风开/关状态,适用于了解远端是否主动开关麦克风,能够区分远端无音频声音是关闭了麦克风导致还是网络异常等情况导致。
  • onRecvRemoteAudioFirstFrame: 通知接收到所拉流的首帧音频,方便获取获取首帧音频的时长,了解音频流首次打开的延迟情况。
  • onRecvRemoteVideoFirstFrame: 通知接收到所拉流的首帧视频,方便获取获取首帧视频的时长,了解视频流首次打开的延迟情况。
  1. 推流代理 ZegoLivePublisherDelegate 中增加了 onCaptureAudioFirstFrame 回调,通知收到采集音频的首帧,方便了解音频首帧的采集情况和采集时长。

  2. 混流代理 ZegoMixStreamExDelegate 中增加了 onMixStreamRelayCDNStateUpdate:mixStreamID: 回调,通知混流转推 CDN 的状态。

  3. 拉流质量回调 onPlayQualityUpate:quality: 中的 ZegoApiPlayQuality 增加了推流端到拉流端的延迟 rtt 和推流端到拉流端的丢包率 pktLostRate。方便客户端直接获取端到端的延迟和丢包情况,便于在网络不佳的时候提示用户当前网络的直播情况,从而引导用户切换网络或者重新进入直播。

API 整理

ge9606fe0 版本中对 API 进行了如下变动。

新增:

改动:

2019-06-10Version:g77803827

改进优化

  1. 全面更新 SDK 错误码,新版错误码更加统一和清晰,让开发人员排查问题更加快速便捷。
  2. setConfig 接口增加 play_nodata_abort 配置项,从即构服务器拉流没拉到数据时可以控制是否终止拉流。
  3. startPlayingStream 接口的 ZegoAPIStreamExtraPlayInfo 参数增加字段 shouldSwitchServer,支持在连麦时根据此字段判断是否需要切换到即构服务器,开发者在采用附加信息中的拉流 URL 进行拉流的情况下,无需在处理连麦时先停止从 CDN 拉流,再重新从即构服务器拉流。
  4. 混流配置 ZegoMixStreamConfig 增加自定义字段 advancedConfig,支持在混流时传递定制化的混流配置信息到后台,比如指定的视频编码格式、SEI 发送方式。
  5. 新增 addPublishTargetdeletePublishTarget 接口,支持修改已设置的转推地址,可以动态增加或删除转推地址。

问题修复

  1. 修复从 RTC 拉流没拉到数据时会结束拉流的问题。
  2. 修复房间服务器重启导致的断线重连问题。

API 整理

g77803827 版本中对 API 进行了如下变动。

新增:

改动:

2019-05-09Version:gc410cfbe

新增功能

  1. 音频频域功率谱
    新增音频频域功率谱功能,频域功率谱展示了音频信号在各个频点上的能量,能根据其值绘制出音频的波形图,比音量的展示效果更优,更适用于主播电台,KTV合唱,语聊点播等场景。相关接口请查看 API 整理->新增接口

改进优化

  1. 修改 setMediaSideFlags 接口,媒体次要信息支持 SEI 方式发送。
  2. 新增 setLogSize 接口,支持设置日志文件的大小。
  3. startPublishing 接口的流附加信息参数长度从 512 bytes 扩充到 1024 bytes,支持更多数据的发送。

问题修复

  1. 修复网络断网并正常恢复后房间重连的问题。
  2. 修复房间心跳超时没有回调 onDisconnect 的问题。
  3. 修复房间登录后没有收到登录回调时就立即登出房间造成房间状态错误的问题。

API 整理

gc410cfbe 版本中对 API 进行了如下变动。

新增:

改动:

2019-04-09Version:gf6f00774

新增功能

  1. 音频节约传输开关
    新增 enableVAD 接口用做语音活动检测的开关,在有音频的条件下检测到语音时才发送语音包,有效减少流量消耗,降低成本。

  2. 多播放器实例
    MediaPlayer 模块支持最多三个播放器实例,支持播放音乐文件等;便于预加载,有效降低切换内容的首帧时间。

  3. 登录房间加速
    登录房间新增由后台配置的加速模式,能够缩短登录房间的时间。

  4. 多种回声消除模式
    新增 setAECMode 接口支持设置舒适,适度和激进三种回声消除模式。

改进优化

  1. 新增音频设备模式 Communication2 模式,在开启系统回声消除时会始终占用麦克风设备。
  2. 新增 setMinVideoBitrateForTrafficControl 接口,在使用流量控制时能设置视频码率的最小值,当发送的码率小于这个值时将进行等待,而不是在视频不流畅的情况下继续直播。
  3. 增加 setReverbParam 接口,支持更多的音频混响参数设置,混响阻尼和余响。
  4. 新增 onCaptureVideoFirstFrame 回调,当采集到视频的首帧时收到该回调。
  5. 优化了弱网条件下的音视频传输质量。
  6. 增加 onAVEngineStart 回调,更新 onAVEngineStop 回调的时机,提供设备占用情况的信息通知,获取 SDK 何时在占用音视频设备。
  7. 修改 enableLoopback 采集监听的有效调用时机,在耳机插入时采集监听才生效,即讲话能听到自己的声音。
  8. 混流配置ZegoMixStreamConfig新增选项 ,支持单流直接推流到CDN,或者混流成单流推流到CDN。
  9. 修改 enableTrafficControl 接口,流量控制属性参数新增音频流量控制选项。
  10. onPublishQualityUpdate 推流质量更新回调,增加了 ZegoApiPublishQuality 类型参数,可获取更多推流质量信息,具体请点击接口查看。
  11. onPlayQualityUpdate 拉流质量更新回调,增加了 ZegoApiPlayQuality 类型参数,可获取更多拉流质量信息,具体请点击接口查看。

问题修复

  1. 修复未登录房间或者登录房间未完成时调用 endJoinLive 等房间信令时崩溃的问题。
  2. 修复 iOS 版的媒体播放器无法回调 onPlayError 的问题。

API 整理

gf6f00774 版本中对 API 进行了如下变动。

新增:

改动:

2019-01-04Version:gcb20f711

新增功能

  1. 新增变声功能;
  2. 新增转推CDN状态回调接口;
  3. 新增 MediaPlayer 模块重复播放接口;
  4. 新增 MediaPlayer 模块截图接口;
  5. 新增 iOS 推流过程中摄像头支持动态朝向。

问题修复

  1. 修复若干BUG,提升稳定性。
2018-11-06Version:gb5998cbf

问题修复

  1. 修复若干BUG。
2018-10-30Version:g3021b99d

新增功能

  1. 支持第三方授权。
  2. 媒体播放器支持播放网络资源,支持同时播放视频并回调视频帧数据,支持选择播放的音轨。
  3. 混流支持多路输出、水印功能、输出编码码率控制模式。
  4. 新增启用预览和推流镜像接口。
  5. 新增外部渲染模块的 Objective-C 接口。
  6. 本地录制支持 MP4 格式。

改进优化

  1. 优化网络连接模式,增加弱网环境下的推流能力。
  2. 优化分层编码接口。

问题修复

  1. 修复若干BUG,增强系统稳定性。
2018-07-13Version:gace83bc5

新增功能

  1. 外部渲染支持回调未解码 264 视频数据给用户
  2. 提高硬编、硬解的稳定性
  3. 混流中支持下发各路流的音量信息
  4. 抖动缓冲优化,减少网络好转时延迟降低的时间
  5. 新增音、视频本地录制接口

问题修复

  1. 修复“MediaPlayer 渲染时,解码画面宽、高和渲染宽、高不一致导致的重影问题”
  2. 修复“iOS8 摄像头卡死阻塞 sdk 的 bug”

改进优化

  1. setPreviewView:setPreviewView:channelIndexstartPlayingStream:inViewstartPlayingStream:inView:paramsstartPlayingStream:inView:extraInfo等 API 不再支持 AutoResizing 布局的 UIView,使用 AutoResizing 布局的 UIView 将不能渲染,可以使用 AutoLayout 布局替代。这次修改主要是为了修复 cocos2dx 的兼容问题。
2018-05-28Version:g7ea5ae9

新增功能

  1. 新增“audio-aux 模块,支持 onAuxCallback 中发送媒体次要信息”
  2. 新增“sound-level 模块,支持回调出房间内谁在说话”
  3. 新增“分层编码功能”
  4. 新增”音频加密、解密接口“

问题修复

  1. 修复“无法正确检测硬编码流的 poc 导致的拉流卡顿”
  2. 修复“渲染和 cocos2dx 冲突导致的闪烁”
2018-04-24Version:g76eafb9

新增功能

  1. setConfig 接口新增设置 “support_general_mode_below_ios9” (iOS9 及以下连麦时支持 general mode(非强制 voip ))

问题修复

  1. 修复“硬编 crash”
  2. 修复“屏幕分享功能,声音时有时无不同步的问题“
  3. 修复“开始拉流后,使用相同的 StreamID 重复拉流,SDK 内部会重新拉流的 Bug”,修改后的逻辑为“保持之前的拉流状态”

改进优化

  1. 开始一次推流后,如果没有向业务层通知过“推流成功“,则不会向业务层回调“推流重试事件”
  2. 开始一次拉流后,如果没有向业务层通知过“拉流成功”,则不会向业务层回调“拉流重试事件”
本篇目录