声网官网已经正式发布 Agora 视频通话/视频直播 Web SDK 2.5版,接下来简要介绍一下 2.5版的亮点新功能:
- 新增支持 IPv6 网络环境,并正常使用 Agora 服务;
- 在 Client.join 接口中,在原有支持整数型 uid 的基础上,已经新增支持字符串类型 uid,便于与开发者自己的账号系统或信令系统打通;
- 新增支持动态切换音频、视频输入/输出设备的接口,若已经发布流,即正在直播连麦中,切换设备后不用重新发流,保证最佳用户体验;
- 新增支持伴奏混音,让主播可在直播的同时,播放音频文件声音并进行混音后推流给观众,有助于实现边直播连麦边播放音乐或更多创新场景;
- 新增多个音视频轨道管理接口,支持开发者对音频、视频轨道分别进行管理,比如开发者可新建混音音轨,实现混音效果(是的,可与上述新功能搭配使用);
- 新增对 mac OS、Windows 版 360浏览器的支持;
- 新增多个用户端质量监控数据接口,包括网络类型、网络连接情况、系统电量、视频流与音频流状态等,让开发者也可以随时了解用户端的通话质量情
继续阅读,了解具体新增了哪些接口。如需了解每个接口的使用与参数,请点击「阅读原文」访问声网Agora 开发者文档中心。

Agora Web SDK 2.5版
Web SDK 可用于构建基于 Web 的多人视频通话或视频直播产品,最多可支持17人同时连麦。目前最新版本对浏览器支持情况如下表:

2.5版本于 2018 年 10 月 30 日发布。新增功能与问题修复如下。
新增功能
为更好地与 Agora 其他 SDK 互通,实现更多功能,Web SDK 在本版本中新增了如下功能。详细的接口说明,请参考 Agora Web SDK API Reference。
1.质量监控
为方便用户查看应用程序的通话质量,新增如下接口:
- Client.getNetworkStats :获取网络统计数据(网络类型)。
- Client.getSystemStats :获取系统数据(系统电量)。
- Client.getRemoteAudioStats :获取远端音频统计数据。
- Client.getLocalAudioStats :获取本地音频统计数据。
- Client.getRemoteVideoStats :获取远端视频统计数据。
- Client.getLocalVideoStats :获取本地视频统计数据。
- Client.getTransportStats :获取网络连接统计数据。
2.支持 IPv6
支持 IPv6 网络环境接入,并正常使用 Agora 服务。本地网关必须同时支持 IPv4 协议栈。
3.媒体设备管理
可提供灵活的设备管理功能,以及设备状态查询。
枚举可用的音频输入输出设备和视频输入设备
新增如下接口:
- Client.getRecordingDevices:枚举音频输入设备,如麦克风。
- Client.getPlayoutDevices :枚举音频输出设备,如扬声器。
- Client.getCameras :枚举视频输入设备,如摄像头。
同时新增如下事件,用来告知应用程序设备状态的变化:
- recordingDeviceChanged :通知应用程序音频输入设备已改变。
- playoutDeviceChanged :通知应用程序音频输出设备已改变。
- cameraChanged :通知应用程序视频输入设备已改变。
切换媒体设备
新增 Stream.switchDevice 接口,支持在频道内切换媒体输入设备,如麦克风、摄像头等。
新增 Stream.setAudioOutput 接口,支持选择音频输出设备,可以切换麦克风和扬声器。
4.支持伴奏混音
支持混音功能,混音是指原音(麦克风采集的音频)和伴奏(音频文件声音)混合。新增如下伴奏混音相关的接口:
- Stream.startAudioMixing :开始播放伴奏。
- Stream.stopAudioMixing :停止播放伴奏。
- Stream.pauseAudioMixing :暂停播放伴奏。
- Stream.resumeAudioMixing :恢复播放伴奏。
- Stream.adjustAudioMixingVolume :调节伴奏音量。
- Stream.getAudioMixingDuration :获取伴奏时长。
- Stream.getAudioMixingCurrentPosition :获取伴奏播放进度。
- Stream.setAudioMixingPosition :设置伴奏音频文件的播放位置。
5.音视频轨道管理
支持灵活管理音视频频道,新增如下接口:
- Stream.getAudioTrack :获取音频轨道。
- Stream.getVideoTrack :获取视频轨道。
- Stream.replaceTrack :替换音视频轨道。
- Stream.addTrack :添加音视频轨道。
- Stream.removeTrack :移除音视频轨道。
6.其他新增功能
- 支持两种视频显示模式,可以在 Stream.play 接口中设置播放流的显示模式。
- 新增 Stream.setScreenBitrate 接口,支持手动设置屏幕共享时的视频码率。
- 新增 Client.enableAudioVolumeIndicator 接口,允许 SDK 定期向应用程序反馈当前谁在说话,以及说话者的音量。
- 新增 Stream.setAudioVolume 接口,支持设置订阅流的音量。
- 新增 networkTypeChanged 事件,通知应用程序网络类型已改变。
- 新增 streamTypeChange 事件,通知应用程序视频流类型已由大流变为小流,或小流变为大流。
- Client.join 接口中,在原来支持整型 uid 的基础上,新增对字符串类型的支持。
- 支持 360 安全浏览器 9.1.0.432 及以上版本。
- 支持 Windows XP 平台的 Chrome 49 浏览器。
问题修复
修复了手机端使用 Safari 或 Chrome 浏览器进入频道后,在仅有音频通话的情况下对 video codec 的依赖。
修复了使用 Safari 浏览器推流后调用 Stream.close 关闭流,对端 10 秒后无法收到 stream-removed 回调的问题。
修复了重置 Stream.userId 后,收到 Warning 的问题。