下载地址: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 变动如下。
新增
-
AgoraRTC.getScreenSources
-
Client.addInjectStreamUrl
-
Client.removeInjectStreamUrl
-
Client.getSessionStats
-
Client.setClientRole
-
Client.getConnectionState
-
Stream.isPlaying
-
Stream.muteAudio
-
Stream.unmuteAudio
-
Stream.muteVideo
-
Stream.unmuteVideo
-
Client.on
新增以下事件:streamInjectedStatus
client-role-changed
peer-online
network-quality
connection-state-change
stream-reconnect-start
stream-reconnect-end
exception
-
Stream.on
新增以下事件:audioMixingPlayed
audioMixingFinished
修改
-
Client.subscribe
方法增加options
参数 -
Stream.setAudioMixingPosition
方法增加callback
参数 -
Stream.play
方法增加muted
参数 -
Client.on
以下事件名称修改:
原事件名 | 现事件名 |
---|---|
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