Agora Web SDK 2.5.1 版发版公告

下载地址:https://docs.agora.io/cn/Agora%20Platform/downloads

该版本于 2019 年 2 月 19 日发布。新增功能、改进及修复问题详见下文。

新增功能

1. 质量透明

支持获取更多通话质量的统计数据:

  • 新增 Client.getSessionStats 方法,获取当前通话相关的统计数据,包括在频道内的时长,音视频总发送/接收码率,频道内的人数等。
  • 新增 network-quality 回调,每 2 秒报告一次本地用户的上下行网络质量。
  • Client.getRemoteAudioStats 获取的远端音频统计数据中新增以下数据:
    • 音频卡顿总时长
    • 音频播放总时长
  • Client.getRemoteVideoStats 获取的远端视频统计数据中新增以下数据:
    • 视频渲染分辨率宽度
    • 视频渲染分辨率高度
    • 视频播放总时长
    • 视频卡顿总时长
  • Client.getLocalVideoStats 获取的本地视频统计数据中新增以下数据:
    • 视频采集分辨率宽度
    • 视频采集分辨率高度
    • 视频采集帧率
    • 视频编码卡顿总时长
    • 视频编码总时长
  • Client.getTransportStats 获取的与网关的连接统计数据中新增以下数据:
    • 上行可用带宽估计
    • 网络类型

2. 独立订阅音频流/视频流

Client.subscribe 方法中新增 options 参数,用于设置是否接收音频数据和视频数据。

该方法可以根据需要在通话中多次调用,在订阅音频和/或视频之间灵活切换。

3. 直播导入在线媒体流

新增 Client.addInjectStreamUrl 方法,支持拉取在线音视频流并发送到频道中,将正在播放的音视频导入到正在进行的直播中。可主要应用于赛事直播、多人看视频互动等直播场景。

相应新增 streamInjectedStatus 回调,用于通知导入状态的改变。

4. 设置用户角色

新增 Client.setClientRole 方法,支持在直播模式下设置用户的角色为主播或者观众。主播可以发布和接收音视频流,观众只能接收音视频流,无法发布。

相应新增 client-role-changed 回调,用于通知用户角色的改变。

5. 获取 SDK 与服务器的连接状态

  • 新增 Client.getConnectionState 方法,用于获取 SDK 与服务器的连接状态。
  • 新增 connection-state-change 回调,用于通知连接状态的变化。

6. 其他新增功能

  • 新增 Stream.isPlaying 方法,用于检测音视频流当前是否在播放状态。
  • Client.on 中新增以下回调:
    • peer-online :通知应用程序有其他用户/主播上线。
    • stream-reconnect-start :通知应用程序 SDK 开始重新发布/订阅音视频流。
    • stream-reconnect-end :通知应用程序重新发布/订阅音视频流已结束。
    • exception :通知应用程序频道内的异常事件。
  • Stream.on 中新增以下回调:
    • audioMixingPlayed :通知应用程序混音开始播放。
    • audioMixingFinished :通知应用程序混音结束播放。

改进

  • Stream.play 方法中新增 muted 参数,用于规避浏览器自动播放策略。
  • Stream.setAudioMixingPosition 方法中新增 callback 参数,可用于返回方法调用失败的错误信息。
  • 修改了部分 Client.on 回调事件的名称,以保持风格统一。

问题修复

  • 修复了 macOS 使用 Safari 浏览器互通时,调用 getStats 方法返回的对端视频分辨率为 0 的问题。
  • 修复了调用 disableAudio 方法后开启混音功能,再调用 enableAudio 方法,无法听到麦克风声音的问题。
  • 修复了掉线时,日志无法正常上传的问题。
  • 修复了调用 switchDevice 方法切换音频设备后,调用 getAudioLevel 方法获取的音量为 0 的问题。
  • 修复了调用 replaceTrack 方法后,在本地听到自己声音的问题。
  • 修复了 iOS 端调用 switchDevice 方法无法二次切换的问题。

API 整理

本次发版 API 变动如下。

新增

修改

原事件名 现事件名
networkTypeChanged network-type-changed
recordingDeviceChanged recording-device-changed
playoutDeviceChanged playout-device-changed
cameraChanged camera-changed
streamTypeChange stream-type-changed

废弃

  • Client.getNetworkStats
  • Stream.enableAudio
  • Stream.disableAudio
  • Stream.enableVideo
  • Stream.disableVideo

对于该版本有任何问题,请跟帖,会由相应的工程师回复。
下载地址:https://docs.agora.io/cn/Agora%20Platform/downloads