本文提供声网 Agora 小程序 SDK 的发版说明。
具体步骤详见配置服务器域名。
该版本于 2022 年 7 月 1 日发布。
体验改进
该版本优化了向 Agora 数据中心上报数据的频次和逻辑,减少了上报请求对正常 http 请求通道的占用。
该版本于 2022 年 5 月 19 日发布。
用户被踢出频道回调
为帮助你在 app 服务端更好地管理频道内的用户,掌握频道内用户状态,该版本新增 on(event: "client-banned")
回调。当你在服务端踢除频道内的用户后,SDK 会触发该回调报告该用户被服务器禁止。
体验改进
该版本优化了弱网环境下音视频的卡顿和网络延迟,提升了视频流畅度。
该版本修复了以下问题:
新增
on(event: "client-banned")
Client.join
新增 isAudioOnly
参数Client.rejoin
新增 isAudioOnly
参数该版本于 2021 年 12 月 9 日发布。
1. 媒体流订阅选项
该版本在Client.subscribe
方法中新增 options
参数,用于设置是否订阅音频流和视频流。
该方法可以根据需要在通话中多次调用,在订阅音频和/或视频之间灵活切换。
2. 设置订阅的视频流类型
该版本新增 setRemoteVideoStreamType
方法,用于设置订阅的视频流类型。当远端用户发送视频双流(大流和小流)时,本地用户可以调用该方法选择订阅大流还是小流。如果不设置,则默认订阅大流。
3. Token 过期回调
为方便用户及时了解 Token 的时效,该版本新增如下回调:
Client.on("token-privilege-did-expire")
:Token 即将过期回调。SDK 会提前 30 秒触发该回调,提醒 app 更新 Token。收到该回调时,你需要重新在服务端生成新的 Token, 然后调用 renewToken
将新生成的 Token 传给 SDK。Client.on("token-privilege-did-expire")
:Token 已过期回调。在 Token 过期后,SDK 会触发该回调。收到该回调时,你需要向服务端重新申请 Token,并调用 join
方法传入新的 Token 重新加入频道。4. 推流/拉流数据上报
为方便向 Agora 数据中心上报 live-pusher 或 live-player 组件报告的网络或推拉流状态,该版本新增如下方法:
updatePusherNetStatus
:上报推流过程中的网络状态。updatePusherStateChange
:上报推流状态。updatePlayerNetStatus
:上报拉流过程中的网络状态。updatePlayerStateChange
:上报拉流状态。新增
subscribe
中新增 options
参数setRemoteVideoStreamType
renewToken
Client.on("token-privilege-did-expire")
Client.on("token-privilege-did-expire")
updatePusherNetStatus
updatePusherStateChange
updatePlayerNetStatus
updatePlayerStateChange
该版本于 2021 年 1 月 20 日发布。修复了 wx.connectSocket is not a constructor
报错问题。
该版本于 2020 年 9 月 21 日发布。
远端用户停止发送视频回调
为方便本地了解远端用户的媒体状态,该版本新增 Client.on("mute-video")
回调。当远端用户停止发送视频流时,SDK 会触发相应的回调。你还可以从该回调中得知停止发送的远端用户的 ID。
该版本于 2020 年 7 月 7 日发布。增加了对 QQ 小程序的兼容。
该版本于 2020 年 5 月 26 日发布。
跨频道媒体流转发
跨频道媒体流转发,指将主播的媒体流转发至其他频道,实现主播与其他频道的主播实时互动的场景。该版本新增如下方法,通过将源频道中的媒体流转发至目标频道,实现跨直播间连麦功能:
startChannelMediaRelay
updateChannelMediaRelay
stopChannelMediaRelay
在跨频道媒体流转发过程中,SDK 会通过 Client.on("channel-media-relay-state")
和 Client.on("channel-media-relay-event")
回调报告媒体流转发的状态和事件。
该版本于 2019 年 12 月 31 日发布。
远端用户停止发送音回调
为方便本地了解远端用户的媒体状态,该版本新增 Client.on("mute-audio")
。当远端用户停止发送音频流时,SDK 会触发相应的回调。你还可以从该回调中得知停止发送的远端用户的 ID。
该版本于 2019 年 9 月 18 日发布。进行了一些内部优化。
该版本于 2019 年 4 月 30 日发布。新增特性和性能改进详见下文。
为方便用户控制本地是否发流,该版本新增 Client.muteLocal
和 Client.unmuteLocal
方法。用户可以使用该方法在小程序中实现不发送本地音视频流等功能。
该版本针对直播下主播切换为观众的场景,对图像和声音的延迟进行了优化。声网实验室测试结果显示,延迟降低为之前的 20%。
该版本于 2019 年 1 月 3 日发布。新增特性及功能改进详见下文。
为方便用户了解是否成功调用 Client.leave
和 Client.destroy
方法,该版本分别在这两个方法中新增了方法调用成功或失败的回调函数。
为提升 Client.setRole
方法的易用性,该版本优化了该方法的调用逻辑。用户在调用 Client.join
加入频道前或后均可以调用该方法,设置或改变用户角色。
同时,该版本对 broadcaster
和 audience
两个角色的行为进行了更为严格的定义:
broadcaster
时,可以调用 Client.publish
和 Client.unpublish
方法audience
时,不可以调用 Client.publish
和 Client.unpublish
方法该版本于 2018 年 11 月 2 日发布。修复问题详见下文。
修复了偶现的反复加入频道失败的问题,提升了服务的稳定性。
该版本于 2018 年 10 月 22 日发布。新增特性与修复问题列表详见下文。
为方便用户在通话或直播过程中,控制是否订阅远端音视频流,该版本新增如下接口:
Client.mute
:停止接收远端音视频流Client.unmute
:继续接收远端音视频流通过使用这两个接口,用户可以选择停止或继续接收音频流、视频流还是音视频流。详细用法见 微信小程序 API 参考。
通过添加如下安全域名,实现高可用策略,提升小程序服务的稳定性:
https://miniapp-1.agoraio.cn
https://miniapp-2.agoraio.cn
https://miniapp-3.agoraio.cn
https://miniapp-4.agoraio.cn
该版本于 2018 年 8 月 8 日发布。新增特性与修复问题列表详见下文。
为提升互通体验,该版本新增了 setRole
接口。当使用场景同时满足以下条件时,小程序 SDK 必须调用该接口将用户角色设置为观众:
该方法必须在
join
加入频道前调用才能生效。
该版本于 2018 年 7 月 27 日发布。新增特性与修复问题列表详见下文。
由于小程序基于微信平台搭建,很多功能在实现中会有局限。目前已知的问题和局限如下所示:
经测试,如下为微信小程序的固有问题,有可能会随微信小程序的版本升级而得到解决: