产品百科 |Ali RTC Android 网络环境监控与弱网策略

简介: 阿里云 RTC 提供网络质量监控功能,您可以通过使用 AliRtcNetworkQuality 回调来获取网络质量评价。
+关注继续查看

音视频通信 RTC(Real-Time Communication)是阿里云覆盖全球的实时音视频开发平台,依托核心音视频编解码、信道传输、网络调度技术,提供高可用、高品质、超低延时的音视频通信服务,让用户快速搭建多端实时应用,适用于在线教育、视频会议、互动娱乐、音视频社交等场景。


产品链接:https://www.aliyun.com/product/rtc


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

功能简介

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

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

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

枚举名描述
Network_Excellent网络极好,流程度清晰度质量好
Network_Good网络好,流畅度清晰度和极好差不多
Network_Poor网络较差,音视频流畅度清晰度有瑕疵,不影响沟通
Network_Bad网络差,视频卡顿严重,音频能正常沟通
Network_VeryBad网络极差,基本无法沟通
Network_Disconnected网络中断
Network_Unknow未知原因

实现方法

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

具体实现方法如下所示。

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

void onNetworkQualityChanged(String uid, AliRtcNetworkQuality upQuality, AliRtcNetworkQuality downQuality);
参数类型描述
downQualityAliRtcNetworkQuality下行网络质量
upQualityAliRtcNetworkQuality上行网络质量
uidString用户 ID
  • 您可以在视频中调用 setVideoProfile 设置视频流规格。

    说明 通过设置较低规格的视频流,减少视频通信的网络资源占用。
//调用示例
mAliRtcEngine.setVideoProfile(profile, vt);
//接口方法
public void setVideoProfile(AliRtcVideoProfile profile, AliRtcVideoTrack track);
参数类型描述
profileAliRtcVideoProfile视频流参数。默认分辨率 480*640,帧率 15 的相机流。
trackAliRtcVideoTrack需要设置的视频流类型。
  • 调用 configRemoteCameraTrack 将订阅视频切换为小流。说明当网络质量恢复优良状态时,请您根据实际需求决定是否切换至优先订阅大流(即默认的订阅模式)。
//接口方法
public void configRemoteCameraTrack(String uid, boolean master, boolean enable)
//重新订阅
mAliRtcEngine.subscribe(uid);
参数类型描述
uidString用户 ID
masterboolean是否大流
enableboolean是否可用
    • 订阅视频切换为小流可以编写如下代码:
mAliRtcEngine.configRemoteCameraTrack(uid, false, true);
mAliRtcEngine.subscribe(uid);
    • 订阅视频切换为大流可以编写如下代码:
mAliRtcEngine.configRemoteCameraTrack(uid, true, true);
mAliRtcEngine.subscribe(uid);
  • 调用 configLocalCameraPublish 方法实现仅发布音频流。

    说明 当网络质量恢复优良状态时,请您根据实际需求决定是否重新发布音视频流。
mAliRtcEngine.configLocalCameraPublish(false);
mAliRtcEngine.publish();
参数类型描述
enableboolean是否允许

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


「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。

image.png

相关文章
|
6天前
|
存储 网络协议 Unix
【计算机网络】Linux环境中的网络套接字编程
【计算机网络】Linux环境中的网络套接字编程
291 0
|
3月前
|
JSON 网络协议 Java
cpolar内网穿透将本地服务端接口模拟公共网络环境远程调用调试
cpolar内网穿透将本地服务端接口模拟公共网络环境远程调用调试
67 0
|
5月前
“拒绝网络谣言 清朗网络环境”倡议书
“拒绝网络谣言 清朗网络环境”倡议书
954 87
 “拒绝网络谣言 清朗网络环境”倡议书
|
7月前
|
SQL 安全 Ubuntu
CFS三层网络环境实战
靶机系列文章最后一篇,之前文章中的靶机链接,文末中会给出,请注意保存...
96 0
|
7月前
|
机器学习/深度学习 传感器 算法
基于Matlab模拟LTE-A异构网络环境的休眠切换算法
基于Matlab模拟LTE-A异构网络环境的休眠切换算法
|
10月前
|
Linux 虚拟化 数据安全/隐私保护
windows使用vmware安装三台虚拟机,配置好网络环境
- VMWare虚拟机软件是一个“虚拟[PC](https://baike.baidu.com/item/PC/107)”软件,它使你可以在一台机器上同时运行多个系统。 - 可以通过Vmware来安装我们的linux虚拟机,然后通过linux虚拟机来进行集群的安装。Vmware的安装步骤省略。只要点击安装之后,一路下一步即
2062 0
windows使用vmware安装三台虚拟机,配置好网络环境
|
11月前
|
Linux
【实操篇】Linux的网络环境及其配置
Linux的网络环境及其配置
89 1
【实操篇】Linux的网络环境及其配置
|
12月前
|
存储 Ubuntu 网络协议
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三)配置网络环境
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三)配置网络环境
715 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三)配置网络环境
相关产品
推荐文章
更多