阿里云RTC提供网络质量监控功能,您可以通过使用AliRtcNetworkQuality回调来获取网络质量评价。

功能简介

在网络质量不理想的情况下,音视频通信的质量受客观因素影响会下降。当监控到弱网环境时,为保证基础通信体验,建议您使用SDK对应的方法分别在发布端和订阅端进行如下优化。

  • 调整视频流规格:通过设置较低档位规格的VideoProfile,减少视频通信的网络资源占用。
  • 切换视频为小流:小流有着与大流相同的宽高比,但是分辨率和码率相对较低,网络资源占用的需求较低。
  • 仅发布音频流:在极端网络环境下,可以选择只发送音频流,从而保证通信的持续。

通过使用AliRtcNetworkQuality回调获取的网络评价如下所示。

枚举名 描述
AlivcRtcNetworkQualityExcellent 网络极好,流程度清晰度质量好
AlivcRtcNetworkQualityGood 网络好,流畅度清晰度和极好差不多
AlivcRtcNetworkQualityPoor 网络较差,音视频流畅度清晰度有瑕疵,不影响沟通
AlivcRtcNetworkQualityBad 网络差,视频卡顿严重,音频能正常沟通
AlivcRtcNetworkQualityVeryBad 网络极差,基本无法沟通
AlivcRtcNetworkQualityDisconnect 网络中断
AlivcRtcNetworkQualityUnknow 未知

实现方法

在实现该功能之前,需要您已经搭建AppServer、实现基本功能等操作。详情请参见入门概述

具体实现方法如下所示。

您可以通过onNetworkQualityChanged回调方法获得网络质量,然后在根据实际策略进行优化。

onNetworkQualityChanged:网络质量变化时回调。

- (void)onNetworkQualityChanged:(NSString *)uid 
        upNetworkQuality:(AliRtcNetworkQuality)upQuality             
        downNetworkQuality:(AliRtcNetworkQuality)downQuality;

参数:

参数 类型 描述
uid NSString * 网络质量发生变化的用户ID
upQuality AliRtcNetworkQuality 上行网络质量
downQuality AliRtcNetworkQuality 下行网络质量
  • 调整视频流规格实现方法如下所示。

    说明 当网络质量恢复优良状态时,请根据您实际需求决定是否切换至高规格视频流。

    您可以在视频中调用设置视频流规格的方法:setVideoProfile。

    该方法参数:

    参数 类型 描述
    profile AliRtcVideoProfile 视频流参数。
    track AliRtcVideoTrack 需要设置的videoTrack类型。

    示例代码:

    public void setVideoProfile(AliRtcVideoProfile profile, AliRtcVideoTrack track);
  • 视频订阅切换为小流方法如下所示。

    说明 当网络质量恢复优良状态时,请您根据实际需求决定是否切换至优先订阅大流(即默认的订阅模式)。

    该方法参数:

    参数 类型 描述
    uid String 用户id
    master boolean 是否大流
    enable boolean 是否可用
    //切换小流
    mAliRtcEngine.configRemoteCameraTrack(uid, false, true);
    mAliRtcEngine.subscribe(uid);
    //重新订阅
    mAliRtcEngine.subscribe(uid);
  • 仅发布音频流方法如下所示。

    说明 当网络质量恢复优良状态时,请您根据实际需求决定是否重新发布音视频流。

    该方法参数:

    参数 类型 说明
    enable boolean true为允许发布相机流;false表示不允许
    //仅发布音频流
    mAliRtcEngine.configLocalCameraPublish(false);
    //重新发布
    mAliRtcEngine.publish();

获得更多功能实现方法,请参见AliRtcEngine接口