在视频通话或直播场景中,如果通信人数过多,设备性能消耗和下行带宽会持续升高,极大程度会带来通信卡顿、掉线、黑屏等问题,本文就该场景如何调用 API 进行优化展开叙述,内容采用 iOS 接口作为示例,其他端在文档中心可自行查找替换。
懒人法
在多人音视频通信过程中,设备的网络流量会出现间接性的波动(突发流量、网络信号问题),影响通话质量,开发者需要对当前通话的质量指标做统计分析,经过分析结果,自行调用API来解决问题,但业务频繁的进行切换或者API调用不当会导致通话异常等现象。anyRTC 从实际出发,根据内部多个指标对订阅用户的音视频质量进行分析,开发了自动音视频流回退功能。用户只需调用方法,监听状态回调,在视频的窗口中给予友好提醒即可。
前提
在使用音视频流回退功能之前,先调用 enableDualStreamMode
方法开启双流模式。下方的每种方式都需提前开启双流模式(小窗口拉取小流,大窗口拉取大流,可节省流量)。
音视频流回退方法
- (int)setRemoteSubscribeFallbackOption:(ARStreamFallbackOptions)option;
在加入频道之后,调用该方法即可。ARStreamFallbackOptions有三个选项:
ARStreamFallbackOptionDisabled
:不使用音视频流回退功能ARStreamFallbackOptionVideoStreamLow
:在下行网络条件较差的情况下,SDK 将接收视频小流(低分辨率、低码率视频流)。ARStreamFallbackOptionAudioOnly
:下行网络较弱时,先尝试只接收视频小流(低分辨率、低码率视频流),如果网络环境无法显示视频,则再回退到只接收音频流
音视频流回退回调
-(void)rtcEngine:(ARtcEngineKit * _Nonnull)engine didRemoteSubscribeFallbackToAudioOnly:(BOOL)isFallbackOrRecover byUid:(NSString *_Nonnull)uid;