产品百科 |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);
参数 类型 描述
downQuality AliRtcNetworkQuality 下行网络质量
upQuality AliRtcNetworkQuality 上行网络质量
uid String 用户 ID
  • 您可以在视频中调用 setVideoProfile 设置视频流规格。

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

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

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


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

image.png

相关文章
|
3月前
|
移动开发 监控 Android开发
Android & iOS 使用 ARMS 用户体验监控(RUM)的最佳实践
本文主要介绍了 ARMS 用户体验监控的基本功能特性,并介绍了在几种常见场景下的最佳实践。
411 13
|
2月前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
2月前
|
安全 数据安全/隐私保护 Android开发
探索Android与iOS的隐私保护策略
在数字时代,智能手机已成为我们生活中不可或缺的一部分,而随之而来的则是对个人隐私和数据安全的日益关注。本文将深入探讨Android与iOS两大操作系统在隐私保护方面的策略和实践,分析它们如何应对日益严峻的隐私挑战,以及用户应如何保护自己的数据安全。通过对比分析,我们将揭示两大系统在隐私保护方面的优势和不足,为用户提供有价值的见解和建议。
|
4月前
|
IDE Android开发 iOS开发
深入解析Android与iOS的系统架构及开发环境差异
本文旨在探讨Android和iOS两大主流移动操作系统在系统架构、开发环境和用户体验方面的显著差异。通过对比分析,我们将揭示这两种系统在设计理念、技术实现以及市场策略上的不同路径,帮助开发者更好地理解其特点,从而做出更合适的开发决策。
206 2
|
30天前
|
开发框架 Android开发 iOS开发
安卓与iOS开发中的跨平台策略:一次编码,多平台部署
在移动应用开发的广阔天地中,安卓和iOS两大阵营各占一方。随着技术的发展,跨平台开发框架应运而生,它们承诺着“一次编码,到处运行”的便捷。本文将深入探讨跨平台开发的现状、挑战以及未来趋势,同时通过代码示例揭示跨平台工具的实际运用。
|
2月前
|
前端开发 Android开发 开发者
探索Android与iOS的跨平台开发策略
在当今多元化的移动设备市场中,开发者面临着为不同操作系统设计应用的挑战。本文深入探讨了Android和iOS两大主流平台的跨平台开发策略。我们将分析使用Flutter、React Native等框架进行跨平台开发的优劣,并讨论如何克服各平台间的差异性,以实现高效、一致的用户体验。此外,文章还将提供一些实用的技巧和最佳实践,帮助开发者优化跨平台应用的性能和兼容性。
53 4
|
2月前
|
前端开发 Android开发 iOS开发
探索Android与iOS的跨平台开发策略
在移动应用开发的多元化时代,跨平台开发已成为开发者追求效率和广泛覆盖的重要手段。本文深入探讨了Android与iOS两大主流平台下的跨平台开发策略,分析了各自的优势与挑战,并通过实际案例展示了如何有效实施跨平台解决方案,以期为开发者提供有价值的参考和启示。
|
3月前
|
网络协议 Shell 网络安全
解决两个 Android 模拟器之间无法网络通信的问题
让同一个 PC 上运行的两个 Android 模拟器之间能相互通信,出(qiong)差(ren)的智慧。
38 3
|
3月前
|
调度 Android开发 开发者
构建高效Android应用:探究Kotlin多线程优化策略
【10月更文挑战第11天】本文探讨了如何在Kotlin中实现高效的多线程方案,特别是在Android应用开发中。通过介绍Kotlin协程的基础知识、异步数据加载的实际案例,以及合理使用不同调度器的方法,帮助开发者提升应用性能和用户体验。
73 4
|
3月前
|
监控 测试技术 Android开发
掌握安卓性能优化的关键策略
【10月更文挑战第7天】 在移动应用开发领域,性能优化是一项至关重要的任务。本文将探讨安卓应用性能优化的重要性、关键策略以及实际操作建议,帮助开发者提升应用的用户体验和竞争力。通过深入浅出的方式,我们将从背景介绍到具体实践,全面解析安卓性能优化的各个维度。

热门文章

最新文章