音视频流回退

最近更新时间:2022-09-20 05:17:40

媒体流回退

网络状态的良好直接影响了实时音视频通话的体验,为了提升音视频通话的体验,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设置订阅远端用户的大小流。

开发注意事项