媒体流回退
网络状态的良好直接影响了实时音视频通话的体验,为了提升音视频通话的体验,Web SDK 提供了音视频回退的机制,开发者可以通过 ArRTCClient.setStreamFallbackOption
方法设置音视频回退策略。
媒体流回退是指,在网络条件差或无法保证音视频正常通话的情况下,SDK 会根据设定的回退策略,自动将订阅的大流切换成订阅小流、订阅的小流回退至订阅音频,从而保证实时通讯的顺利进行(至少保证音频通讯的正常)。
实现方法
媒体流回退提供两个回退策略:
fallbackType
设定为1
时,在网络下行较弱时,只订阅主播的视频小流。fallbackType
设定为2
时,在网络下行较弱时,先尝试只订阅主播的视频小流。如果网络环境无法满足视频的标准,则只订阅主播的音频流。
远端用户如果调用 setRemoteVideoStreamType
方法,只订阅小流,会在网络条件恢复之后,自动回退到视频小流,而不会回退至大流。
当 SDK 发生媒体流回退时,会自动触发 stream-fallback
回调方法,帮助开发者了解当前接收流的状态。如果大小切换发生变化,同样也会自动触发 stream-type-changed
回调,帮助开发者了解当前接收到的视频流类型。
示例代码
// 开启双流模式
client.enableDualStream().then(() => {
console.log("Enable dual stream success!")
}).catch(err => {
console,log(err)
});
// 接收端的配置。弱网环境下先尝试接收小流;若当前网络环境无法显示视频,则只接收音频流。
client.setStreamFallbackOption(remoteStream, 2)
// 接收端的配置。弱网情况下为保证通话质量,将订阅的视频大流手动切换成视频小流。
client.setRemoteVideoStreamType(remoteStream, 1);
API 参考
API | 描述 |
---|---|
ArRTCClient.enableDualStreamMode | 开启双流模式。 |
ArRTCClient.setStreamFallbackOption | 设置媒体流回退策略。 |
ArRTCClient.setRemoteVideoStreamType | 设置订阅远端用户的大小流。 |