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

发布历史

2022-09-09 Version:6.15.0

新增功能

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

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

2. 支持华为手机使用系统耳返的混响效果

​​​​注意:如需使用该功能,请联系 ZEGO 技术支持。
华为手机使用系统耳返的情况下,增加混响效果。由于系统的限制,只支持如下三种混响效果:KTV、Theatre(剧院)、Concert(音乐会),默认为 KTV。若选择三种效果之外的混响效果,依然默认为 KTV 效果。

改进优化

1. Android 端超分性能优化(高通平台)

​​​​注意:如需使用该功能,请联系 ZEGO 技术支持。
优化超分功能的表现,提升机型覆盖、优化资源占用和推理速度。

问题修复

  1. 修复多房间模式下,在网络切换(WiFi/蜂窝网络)期间调用 loginRoom 可能无回调的问题。
  2. 修复范围语音功能在退出小队后,在范围距离外还能听到原小队内的人的声音的问题。
  3. 修复 Android 5.1 及以下版本可能崩溃的问题。 ​
2022-08-09Version:6.14.0

新增功能

1. 支持 socks5 的客户端代理

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

相关 API 请参考 setConfig

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

请注意:

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

相关 API 请参考 supportBufferType

3. 支持动态修改 AudioDeviceMode

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

相关 API 请参考 setAudioDeviceMode

改进优化

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

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

相关 API 请参考 onNetworkQuality

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

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

相关 API 请参考 onPlayQualityUpdateonPublishQualityUpdateonNetworkQuality

3. 优化日志上报策略

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

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

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

问题修复

  1. 修复网络模块极低概率崩溃的问题。
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 错误时,会返回这些错误码,详情请参考 常见错误码 中的详细解释和处理建议。

2. 实时合唱人声伴奏对齐优化

优化了 KTV 实时合唱场景中,人声和伴奏对齐能力。避免当客户端同时推人声和伴奏两条流时,因为设备播放的延迟,导致人声和伴奏不对齐,造成的体验下降。

问题修复

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

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

2022-06-20Version:6.12.2

问题修复

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

问题修复

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

新增功能

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

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

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

相关 API 请参考 enableCamAdaptiveFPS

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

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

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

相关 API 请参考 mixStreamEx

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

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

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

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

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

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

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

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

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

相关 API 请参考 startPublishingWithParams

改进优化

  1. 优化回声消除,解决 KTV 等场景的吞音现象
  2. Android 平台加载 so 库失败时可以抛出 UnsatisfiedLinkError 异常通知
2022-05-11Version:6.11.0

新增功能

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

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

相关 API 请参考 startPublishing

改进优化

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

问题修复

  1. 修复了调用网络测速接口后立刻调用开始推流接口时,收不到网络测速回调的问题
  2. 修复了 H.265 仅本地媒体录制时不生效的问题
  3. 修复了 Android 平台的网络变化监控模块存在的多线程安全问题
  4. 修复了特定 Android 机型和特定蓝牙耳机搭配使用的情况下,开启采集时导致通话音量由蓝牙变成扬声器外放的问题
2022-04-13 Version:6.10.1

问题修复

  1. 修复了日志上报时,日志文件收集异常的问题。
  2. 修复了部分手机的回声消除问题。
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. 修复了部分手机硬解返回的分辨率不正确的问题。
2022-03-28 Version:6.9.3

问题修复

  1. 修复了部分 Android 机型在使用硬件解码拉流的情况下,[OnVideoSizeChanged] 回调的分辨率可能不准确的问题。
2022-03-22 Version:6.9.2

问题修复

  1. 修复本地媒体录制模块功能异常的问题。
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. 产物名称变更

    规范 SDK 名称大小写:原本的 so 名称为 libzegoliveroom.so,变更为 libZegoLiveRoom.so;原本的 jar 名称为 zegoliveroom.jar,变更为 ZegoLiveRoom.jar。

问题修复

  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. 8.0 以上版本的 Android 系统支持获取 CPU 的使用率
2021-12-09 Version:6.7.0

新增功能

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

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

相关 API 请参考 enableVirtualStereo

改进优化

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

问题修复

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

新增功能

1. 新增版权音乐功能

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

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

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

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

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

相关 API 请参考 callExperimentalAPI

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

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

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

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

相关 API 请参考 setPlayStreamsAlignmentProperty

5. 新增音频设备模式

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

相关 API 请参考 setAudioDeviceMode

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

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

相关 API 请参考 setAudioVADStableStateCallbackenableCapturedAudioVADStableStateMonitorenableAudioPrepVADStableStateMonitoronCapturedAudioVADStateUpdateonAudioPrepVADStateUpdate

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

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

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

8. 服务端 Token 能力升级

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

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

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

9. 服务端支持批量禁止 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. 转推地址长度限制扩容
    混流转推地址长度限制由 512 字节扩展到 1024 字节。

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

  5. 官网的 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

改进优化

  1. 优化了混流精准对齐功能 推流端,配置混流时可以指定某些流进行精准对齐。
  2. 优化了混流精准对齐的接口调用逻辑 调用 startPublishing 接口且将 ZegoPublishStreamParams 中的 forceSynchronousNetworkTime 值设置为 1,则 SDK 内部会等到 NTP 网络时间同步完成后再推流,此时再调用 setStreamAlignmentProperty 接口开启混流精准对齐功能。
  3. 优化了录音棚、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. 新增支持小米机型的耳返功能

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

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

问题修复

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

问题修复

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

新增功能

1. 媒体播放器支持硬解

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

新增接口 requireHWDecoder

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

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

相关接口 onPlayQualityUpdate

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

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

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

4. 调节采集音量时,支持系统耳返音量同步调整

在使用系统耳返时,调用 setCaptureVolume 接口采集音量,可同步调整系统耳返音量,让观众听到的声音与自身耳返声音保持在同一水平线。

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

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

新增接口 startload

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

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

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

onPlayQualityUpdate 回调新增 mos 参数。

改进优化

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

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

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

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

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

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

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

问题修复

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

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

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

2021-07-09Version:g1c747fe8b2

新增功能

1. 支持获取 NTP 时间

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

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

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

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

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

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

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

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

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

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

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

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

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

改进优化

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

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

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

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

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

问题修复

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

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

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

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

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

2021-06-18Version:gb6c19ce606

新增功能

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

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

新增接口 setToken,新增回调 onTokenWillExpired

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

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

2. 优化多房间功能

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

新增 setRoomMode 等接口。

相关文档请参考 多房间

2021-06-10Version:gcd4f671d18

新增功能

1. 兼容 Android 10 和 Android 11 对文件访问的限制

Android 10 引入 scoped storage 概念后,一般情况下,App 只能访问 SD 卡上属于 App 的私有数据,开发者可在 AndroidManifest.xml 中添加声明来关闭 scoped storage。

但 Android 11 及以后版本将忽略该声明,强制开启 scoped storage。开发者可使用 SDK 提供的接口,使 SDK 支持直接使用文件路径读写文件。

新增 getLogPathUrisetWaterMarkImagePathstartRecord 接口,媒体播放器新增 startload 接口,音效播放器新增 playEffectpreloadEffect 接口。

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

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

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

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

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

新增 requireHardwareEncoderByChannelrequireHardwareDecoderByStream 接口。

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

改进优化

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

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

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

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

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

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

  7. 优化耳返功能,大幅度降低耳返延迟。

问题修复

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

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

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

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

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

2021-05-10Version:g84e595a166

新增功能

1. 新增空间音频功能

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

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

改进优化

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

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

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

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

问题修复

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

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

2021-04-09 Version:g705ba516f7

新增功能

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

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

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

新增 ZegoMixStreamInfo 结构体 audioFocus 成员。

2. 新增人声偏移功能

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

新增接口 setAudioCaptureShiftOnMix

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

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

新增接口 onNetworkQuality

4. 新增质量数据回调

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

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

ZegoPlayStreamQuality 新增参数 audioCumulativeBreakRatevideoCumulativeBreakRate,相关接口请参考 onPlayQualityUpdate

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

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

新增接口 onSendLocalAudioFirstFrameonSendLocalVideoFirstFrame

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

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

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

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

相关接口请参考 setPublishConfig

8. 新增音频观察器

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

新增接口 startAudioObserverstopAudioObserversetAudioObserverCallback

改进优化

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

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

2. 建立设备黑名单

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

3. 建立设备白名单

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

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

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

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

问题修复

  1. 修复在可靠消息发送空字符串后,再次发送可靠消息报错的问题
  2. 修复使用外部采集纹理模式出现异常的问题
  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. 日志默认打印 SDK 版本信息和日志输出的路径

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

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

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

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

  10. 新增适配 Android R

  11. 优化 DNS 解析逻辑

问题修复

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

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

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

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

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

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

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

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

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

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

  11. 修复高频调用 JNI 反射的崩溃问题

  12. 修复 RunSyncEx 修改栈变量导致的栈破坏的崩溃问题

  13. 修复 SurfaceTexture 在 detach 后回调访问空指针的崩溃问题

  14. 修复混响破音的问题

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

2021-02-04 Version:g1f9d0b0526

问题修复

1. 修复已知问题

2021-01-27 Version:g07c70342f1

新增功能

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

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

问题修复

1. 修复使用高级自定义混响功能出现崩溃的问题

2. 修复在推流端使用外部采集特定纹理(GL_TEXTURE_2D 类型)且硬编码模式下,拉流端可能出现黑屏、闪屏异常的问题

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 通话场景中音频和视频的质量,通过数据洞悉业务表现。

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

5. 新增流控触发模式

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

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

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

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

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

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

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

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

改进优化

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

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

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

问题修复

1. 修复在摄像头设备异常的情况下,应用在前台使用时可能出现多次重启摄像头的问题

2. 修复弱网环境下进行直播可能出现花屏的问题

3. 修复在特定场景中用户连接耳机时声音依旧从听筒中发出的问题

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

废弃接口

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

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

2020-12-31 Version:g51885ce1c9

问题修复

1. 修复已知问题

2020-12-22 Version:gf36b794707

问题修复

1. 修复已知的崩溃问题

2020-12-15 Version:gfc9e4cb695

新增功能

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

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

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

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

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

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

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. 修复从 CDN 拉流收不到媒体次要信息的问题

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

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

5. 修复部分机型内存访问异常导致的崩溃问题

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

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

废弃接口

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. 外部采集支持 OES 格式

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

问题修复

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

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

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

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

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

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

2020-10-15 Version:gfa5bc0e5b

新增功能

1. Android SDK 支持操作系统版本调整

新版本 Android SDK 支持的 API 级别要求不低于16,最低支持的操作系统版本从原来的 Android 4.0.3 提升到 Android 4.1。

2. 新增流删除原因

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

3. 新增变音效果

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

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

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

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

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

改进优化

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

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

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

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

问题修复

1. 修复 Android 多次反初始化后,SDK 音频加解密功能失效的问题

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

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. 修复房间和媒体流业务中,推拉流重试时间不准确的问题

2020-08-12 Version:g3575960b7

新增功能

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

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

新增 startDownlinkSpeedTeststopDownlinkSpeedTest 等接口。

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

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

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

3. 新增切换房间功能

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

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

4. AudioDeviceMode 下新增 General2 模式

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

5. 新增预览首帧回调

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

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

改进优化

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

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

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

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

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

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

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

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

问题修复

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

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

3. 修复使用外部滤镜时,调用时序错误导致滤镜无效的问题

2020-07-10 Version:gbbac93b4e

新增功能

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

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

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

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

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

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

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

改进优化

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

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

问题修复

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

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

3、修复使用媒体本地录制过程中偶现的崩溃问题

4、修复使用外部采集的内存模式时修改 rotation,会概率性无效的问题

2020-06-22 Version:g13dcf9bcd

问题修复

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

2020-06-11 Version:g2e9dbf798

新增功能

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

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

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

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

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

改进优化

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

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

问题修复

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

2、修复使用视频外部采集时偶现的崩溃问题

3、修复外部滤镜相关的 bug

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

新增

废弃

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

2020-05-12Version:g68b0532ce

新增功能

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

(1)新增setActiveAudioChannel 接口,可以调用接口设置参数进行声道切换,控制只播放左声道的音乐或左、右两个声道的音乐。在KTV 场景下,可以通过切换左右声道来控制只播放伴奏或播放伴奏和原唱。
(2)新增setAudioChannelKeyShift 接口,可以通过接口设置所需的变调效果,实现对音乐升调或降调。满足音乐爱好者的变调演唱需求。

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

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

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

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

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

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

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

5. 新增网络状态回调

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

改进优化

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

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

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

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

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

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

问题修复

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

2. 修复硬解VP8的crash

3. 修复监听摄像头变化回调引起的crash

4. 修复外部滤镜偶现的画面撕裂问题

5. 修复部分机型初始化AudioRouteMonitor时崩溃的 bug

6. 修复外部滤镜Hybrid模式无法创建Surface的bug

新增

2020-04-24Version:gb8ff47533

问题修复

修复频繁 initSDK、uninitSDK,使用外部采集会概率失效的 bug

2020-04-09Version:g18e243156

新增功能

1. MediaRecorder 增加质量回调

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

2. Android 编译支持使用 STL 动态库

支持动态链接 so 库,共享一个 STL 库,减少包大小。

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

改进优化

优化 Android 端的录屏功能

采集帧率保持和设置值一致,避免出现画面静止时采集帧率极低,导致拉流没有画面的问题;默认采集分辨率和屏幕分辨率一样,避免采集时出现黑边。

问题修复

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

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

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

3. 修复 Android 平台视频外部渲染偶现 Crash

废弃预告

2020-03-09Version:g54f488a0c

新增功能

1. 转推支持 RTMPS 协议

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

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

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

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

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

  • 新增 setConfig配置项,通过设置 ZegoLiveRoom.setConfig("vcap_external_support_preview=true") 开启此功能。

4. 媒体播放器新增功能

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

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

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

改进优化

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

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

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

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

问题修复

1. 修复 Android 平台编译时生成的 build_config.properties 文件中 feature 不全的 bug。

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

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

4. 修复 Android 端在反初始化 SDK 之后再次初始化 SDK 时,无法设置 media-recorder 的回调指针的问题。

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

6. 修复部分 Android 设备上的偶现 crash。

API 整理

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

新增:

2020-02-09Version:ge443c0e04

新增功能

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

改进优化

  1. 推/拉流质量回调添加音频、视频和总字节数的统计信息。
  2. 优化设置相机曝光点的日志打印频率,引擎调整为2s/次,SDK 不打印。
  3. SDK 删除媒体播放器 getDuration , getCurrentDuration 的日志打印。
  4. SDK 删除曝光设置 setCamExposurePoint, setCamFocusPoint 接口的日志打印。
  5. 优化自动曝光。
  6. 未启用内置扬声器时,增加检测是否需要切换为蓝牙设备播放。
  7. 修复解析 http-flv 第一个 Tag 时,放错 jitter 的缓存队列导致的 crash。
  8. 修复使用不同的 streamID 重复调用推流时房间还会存在上一条流信息的 bug。
  9. 修复在反初始化 SDK 之后再次初始化 SDK 时,无法设置 media-recorder 回调的问题。

问题修复

  1. 修复在没有重复发音频格式的情况下导致重推流音频缺少 config 的问题。
  2. 平台修复 Choreographer 的 fd 泄露。
  3. 修复部分机型回前台视频时钟不工作的问题。

API 整理

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

新增:

改动:

2019-12-09Version:gcbdd122c2

新增功能

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

改进优化

  1. 改进平台网络类型判断,只判断网络类型,不依据连接状态。
  2. 修正了一些场景的错误码。

问题修复

  1. 修复硬编配置导致B帧或者初始化失败的 bug。
  2. 修复 AudioPlayer 反初始化时崩溃的问题。
  3. 修复判断流是否存在的逻辑错误问题。
  4. 修复变量重复定义可能导致未知行为的问题。
  5. 修复无法停止播放 wav 文件的问题。
  6. 修复 uninitSDK 可能 crash 的问题。
  7. 修复外部调用推送重复流名,有几率导致发送2次相同流名的流新增问题。
2019-11-09Version:gc3c7f5327

新增功能

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

改进优化

  1. 优化了断线重连机制的逻辑,为业务提供更优质的重连服务。
  2. 优化了日志目录,清晰的区分本地缓存目录和日志目录。
  3. 优化 IZegoLivePlayerCallback2.onRemoteMicStatusUpdateIZegoLivePlayerCallback2.onRemoteCameraStatusUpdate 回调,新增 reason 参数。
  4. 优化 ZegoDeviceErrorCode,新增若干个错误码。
  5. 优化 IZegoRoomCallback.onKickout 回调接口,新增了字段 customReason
  6. 优化 Android平台 onAudioRecordCallback 在回调时切换线程。
  7. 优化 setConfig 接口,允许通过 setconfig 接口设置 max_channels

问题修复

  1. 修复快速初始化反初始化导致 SDK 崩溃的问题。
  2. 修复在部分 Android 平台上开启视频外部渲染时崩溃的问题。
  3. 修复连麦加速时没有拉流质量回调问题,限制最大重试时间最大值。
  4. 修复 Android 平台踢人回调问题。
  5. 修改监听耳机插拔的时机。
  6. 修复断网事件监听。
  7. 修复 wifi 切换 4G 网络时,流通知可能异常的问题。

API 整理

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

新增:

改动:

2019-09-09Version:g3161cd976

新增功能

  1. 多房间功能

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

改进优化

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

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

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

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

  5. ZegoCamera新增设置曝光点
    ZegoCamera 新增 setCamExposurePoint 接口设置曝光点。

  6. 为保证 setPolishStep(float step)setPolishFactor(float factor, int channelIndex) API 参数一致性,新增 setPolishStep(float step, int channelIndex)setPolishFactor(float factor)

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

2019-08-09Version:gc68861be

新增功能

  1. 引擎支持处理 Android 端直播中的打断事件。 直播中 QQ 或者微信视频通话抢占摄像头,在视频通话结束后直播可以自恢复;直播中电话打断直播,在电话结束后可以恢复直播。

问题修复

  1. 对某些特定场景下推流失败的问题进行了优化。

API 整理

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

改动:

2019-07-09Version:ge9606fe0

新增功能

  1. 多播放器实例

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

改进优化

  1. 新增拉流回调 IZegoLivePlayerCallback2,其中包含以下5个回调:
  1. 推流回调 IZegoLivePublisherCallback 增加了 onCaptureAudioFirstFrame 回调,通知收到采集音频的首帧。

  2. 混流增加转推 CDN 状态的回调接口 IZegoMixStreamRelayCDNCallback

  3. 拉流质量回调 IZegoLivePlayerCallback.onPlayQualityUpdate 中的 ZegoPlayStreamQuality 增加了推流端到拉流端的延迟 peerToPeerDelay 和推流端到拉流端的丢包率 peerToPeerPktLostRate

API 整理

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

新增:

改动:

2019-06-10Version:g77803827

改进优化

  1. 全面更新 SDK 错误码,新版错误码更加统一和清晰,让开发人员排查问题更加快速便捷。
  2. setConfig 接口增加 play_nodata_abort 配置项,从即构服务器拉流没拉到数据时可以控制是否终止拉流。
  3. startPlayingStream 接口的 ZegoStreamExtraPlayInfo 参数增加字段 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. 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. 外部渲染回调 queueInputBuffer 增加 streamID 参数,当使用外部渲染推流数据时,能够支持同时推两路流。
  9. 混流配置ZegoMixStreamConfig新增选项 ,支持单流直接推流到CDN,或者混流成单流推流到CDN。
  10. 修改 enableTrafficControl 接口,流量控制属性参数新增音频流量控制选项。
  11. onPublishQualityUpdate 推流质量更新回调,增加了 ZegoPublishStreamQuality 类型参数,可获取更多推流质量信息,具体请点击接口查看。
  12. onPlayQualityUpdate 拉流质量更新回调,增加了 ZegoPlayStreamQuality 类型参数,可获取更多拉流质量信息,具体请点击接口查看。

问题修复

  1. 修复未登录房间或者登录房间未完成时调用 endJoinLive 等房间信令时崩溃的问题。
  2. 修复 iOS 版的媒体播放器无法回调 onPlayError 的问题。
  3. 修复 Android 版外部渲染接口连续两次调用 enableExternalRender 会导致回调被清空的问题。
  4. 修复 Android 版混音接口连续两次调用 enableAux 会导致混音音频数据输入回调被清空的问题。

API 整理

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

新增:

改动:

2019-01-04Version:gcb20f711

新增功能

  1. 新增变声功能;
  2. 新增转推CDN状态回调接口;
  3. 新增 MediaPlayer 模块重复播放接口;
  4. 新增 MediaPlayer 模块截图接口;

问题修复

  1. 修复 Android 回到前台音频输出错误的问题;
  2. 修复若干BUG,提升稳定性。
2018-11-06Version:gb5998cbf

问题修复

  1. 修复若干BUG。
2018-10-30Version:g3021b99d

新增功能

  1. 支持第三方授权。
  2. 媒体播放器支持播放网络资源,支持同时播放视频并回调视频帧数据,支持选择播放的音轨。
  3. 混流支持多路输出、水印功能、输出编码码率控制模式。
  4. 新增启用预览和推流镜像接口。
  5. 本地录制支持 MP4 格式。

改进优化

  1. 优化网络连接模式,增加弱网环境下的推流能力。
  2. 优化分层编码接口。

问题修复

  1. 修复若干BUG,增强系统稳定性。
2018-07-13Version:gace83bc5

新增功能

  1. 外部渲染支持回调未解码 264 视频数据给用户
  2. 硬编硬解支持 kirin960
  3. 混流中支持下发各路流的音量信息
  4. 抖动缓冲优化,减少网络好转时延迟降低的时间
  5. 新增音、视频本地录制接口

问题修复

  1. 修复“MediaPlayer渲染时,解码画面宽、高和渲染宽、高不一致导致的重影问题”
  2. 外部采集、外部滤镜 jni 回调时检测到异常直接抛出 java 异常,避免用户无法查看自己 crash 的堆栈信息
2018-05-28Version:g7ea5ae9

新增功能

  1. 新增“audio-aux 模块,支持 onAuxCallback 中发送媒体次要信息”
  2. 新增“sound-level 模块,支持回调出房间内谁在说话”
  3. 新增“分层编码功能”
  4. 新增“视频外部渲染模块,支持回调未解码的264视频数据”
  5. setConfig 支持“开启/关闭 硬件加速白名单“
  6. 新增“setLoopbackVolume 接口”
  7. 新增”音频加密、解密接口“

问题修复

  1. 修复”sound-level 模块调用 stop 方法时发生 crash“
  2. 修复“外部滤镜创建失败后访问空指针的 crash“
  3. 修复“渲染 I422 的 crash”
2018-04-24Version:g76eafb9

新增功能

  1. 新增“音频外部采集、渲染接口”

问题修复

  1. 修复“x86 架构下,在 Android 23(含) 以上的系统中,text relocation 检测失败”
  2. 修复“开始拉流后,使用相同的 StreamID 重复拉流,SDK 内部会重新拉流的 Bug”,修改后的逻辑为“保持之前的拉流状态”

改进优化

  1. 开始一次推流后,如果没有向业务层通知过“推流成功“,则不会向业务层回调“推流重试事件”
  2. 开始一次拉流后,如果没有向业务层通知过“拉流成功”,则不会向业务层回调“拉流重试事件”
本篇目录
1 发布历史
1.1 新增功能
1.2 改进优化
1.3 问题修复
1.4 新增功能
1.5 改进优化
1.6 问题修复
1.7 问题修复
1.8 新增功能
1.9 改进优化
1.10 问题修复
1.11 问题修复
1.12 问题修复
1.13 新增功能
1.14 改进优化
1.15 新增功能
1.16 改进优化
1.17 问题修复
1.18 问题修复
1.19 新增功能
1.20 改进优化
1.21 问题修复
1.22 问题修复
1.23 问题修复
1.24 问题修复
1.25 新增功能
1.26 改进优化
1.27 问题修复
1.28 问题修复
1.29 问题修复
1.30 问题修复
1.31 新增功能
1.32 改进优化
1.33 新增功能
1.34 改进优化
1.35 问题修复
1.36 新增功能
1.37 改进优化
1.38 问题修复
1.39 新增功能
1.40 改进优化
1.41 问题修复
1.42 新增功能
1.43 改进优化
1.44 问题修复
1.45 问题修复
1.46 新增功能
1.47 改进优化
1.48 问题修复
1.49 新增功能
1.50 改进优化
1.51 问题修复
1.52 新增功能
1.53 新增功能
1.54 改进优化
1.55 问题修复
1.56 新增功能
1.57 改进优化
1.58 问题修复
1.59 新增功能
1.60 改进优化
1.61 问题修复
1.62 问题修复
1.63 新增功能
1.64 改进优化
1.65 问题修复
1.66 问题修复
1.67 新增功能
1.68 问题修复
1.69 问题修复
1.70 新增功能
1.71 改进优化
1.72 问题修复
1.73 废弃接口
1.74 问题修复
1.75 问题修复
1.76 新增功能
1.77 改进优化
1.78 问题修复
1.79 废弃接口
1.80 问题修复
1.81 新增功能
1.82 改进优化
1.83 问题修复
1.84 新增功能
1.85 改进优化
1.86 问题修复
1.87 新增功能
1.88 改进优化
1.89 问题修复
1.90 新增功能
1.91 改进优化
1.92 问题修复
1.93 新增功能
1.94 改进优化
1.95 问题修复
1.96 问题修复
1.97 新增功能
1.98 改进优化
1.99 问题修复
1.100 新增
1.101 废弃
1.102 新增功能
1.103 改进优化
1.104 问题修复
1.105 新增
1.106 问题修复
1.107 新增功能
1.108 改进优化
1.109 问题修复
1.110 废弃预告
1.111 新增功能
1.112 改进优化
1.113 问题修复
1.114 API 整理
1.115 新增功能
1.116 改进优化
1.117 问题修复
1.118 API 整理
1.119 新增功能
1.120 改进优化
1.121 问题修复
1.122 新增功能
1.123 改进优化
1.124 问题修复
1.125 API 整理