网络不理想的环境下,音视频的质量都会下降。为提升用户体验,声网新增了 setLocalPublishFallbackOption
和 setRemoteSubscribeFallbackOption
两个方法。用户设置这两个方法后,在网络条件差、无法同时保证音频和视频质量的情况下,SDK 会自动将视频流从大流切换为小流,或将媒体流回退为音频流,从而提高音视频质量。
在实现视频流回退机制前,请确保已在你的项目中实现基本的音视频功能。详见开始互动直播或开始音视频通话。
参考如下步骤,在你的项目中实现视频流回退功能:
调用 enableDualStreamMode
方法开启双流模式。
调用 setLocalPublishFallbackOption
方法,并设置 AudioOnly (2)
开启本地发布的媒体流在弱网环境下回退。当网络不好时,SDK 会自动停止发布视频流,只发布音频流。
本地发布的流从媒体流切换到音频流,或从音频流切换到媒体流时,SDK 会触发 didLocalPublishFallbackToAudioOnly
回调报告当前发布的流的类型。
旁路推流直播场景下,发送端设置
AudioOnly (2)
可能导致 CDN 观众听到的声音有所延迟。声网不建议使用视频流回退机制。
调用 setRemoteSubscribeFallbackOption
方法设置弱网环境下接收媒体流的回退选项。
StreamLow (1)
,则下行网络较弱时,只接收视频小流。AudioOnly (2)
,则下行网络较弱时,先尝试只接收视频小流。如果网络环境无法显示视频,则只接收音频流。用户接收到的流从媒体流切换到音频流,或从音频流切换到媒体流时,SDK 会触发 didRemoteSubscribeFallbackToAudioOnly
回调报告当前接收流的回退状态。当接收到的流从大流切换到小流,或从小流切换到大流时,SDK 会触发 remoteVideoStats
回调报告当前接收到的视频流类型。
//Swift
// 开启视频双流模式。
agoraKit.enableDualStreamMode(true)
// 发送端的配置。网络较差时,只发送音频流。
agoraKit.setLocalPublishFallbackOption(.audioOnly)
// 接收端的配置。弱网环境下先尝试接收小流;若当前网络环境无法显示视频,则只接收音频流。
agoraKit.setRemoteSubscribeFallbackOption(.audioOnly)
//Objective-C
// 开启视频双流模式。
[agoraKit enableDualStreamMode: YES];
// 发送端的配置。网络较差时,只发送音频流。
[agoraKit setLocalPublishFallbackOption: AgoraStreamFallbackOptionAudioOnly];
// 接收端的配置。弱网环境下先尝试接收小流;若当前网络环境无法显示视频,则只接收音频流。
[agoraKit setRemoteSubscribeFallbackOption: AgoraStreamFallbackOptionAudioOnly];