RTC SDK 通过回调,通话过程中提供了丰富的信息和统计数据报告,包括网络质量、音视频流质量和状态、设备性能和通话信息统计信息。你可以根据这些信息,通过 UI 向用户展示通话质量看板,进行通话中的状态展示,帮助用户进行通话问题定位,提升使用体验。
前提条件
你已经集成 RTC SDK,实现了基础音视频通话功能。
质量统计
质量统计看板通常包含由这几个部分信息组成
- 视频质量指标。其中,视频包括摄像头流和屏幕共享流。
本节介绍如何利用相关回调,在客户端构建一个通话质量看板。
如果你需要对 appId 下所有用户的通话质量进行监测和数据分析,前往 控制台 > 质量概览 进行查看。 系统负载
系统负载主要展示了 App 对当前设备的占用情况,包含 CPU 和内存的占用比例。
你可以通过 onSysStats 回调获取当前 App 的 CPU 使用率、当前 App 的 内存使用率等相关参数,如下表。 onSysStats 为周期回调,在用户进房后自动开启,频率是每 2s 一次。
点击下表中的链接,查看各端的回调说明。
网络环境
用户进房后,通过每 2s 一次的 onRoomStats 回调获取网络信息,包括带宽、丢包率、抖动和时延等,实现网络指标的动态展示。
用户进房后和用户的网络类型改变时,都会触发 onNetworkTypeChanged 回调,你可以从中获取到用户当前的网络类型并通过 UI 进行展示。
点击下表中的链接,查看各端的回调说明。
音视频质量报告
你可以通过以下回调获取发布和订阅的音视频质量信息。
音频
- 音频质量:分别从 onLocalStreamStats 和 onRemoteStreamStats 回调获取上、下行媒体流的质量信息。通过远端音频回调可以通过 onActiveSpeaker 筛选出当前活跃用户的音频数据。
视频
分别从 onLocalStreamStats 和 onRemoteStreamStats 回调获取上、下行媒体流的质量信息。当同时订阅多路远端视频时,建议选择用户的焦点视频的数据进行展示。常用的视频信息包括:
注意:当本地设置发送多路流时,即,内容相同但分辨率不同的视频流时,上述回调返回的是分辨率最大流的相关信息。
屏幕共享
和视频质量信息类似的,你可以从 onLocalStreamStats 和 onRemoteStreamStats 回调中获取屏幕共享的分辨率、帧率和码率等信息。
点击下表中的链接,查看各端的回调说明。
媒体流状态监控
你可以通过音视频流的状态检测回调,控制 UI 显示用户的状态。例如,是否开麦、是否开启了摄像头等。
- 当本地用户开关音/视频时,将触发 onLocalAudioStateChanged 和 onLocalVideoStateChanged 回调。
- 当已订阅的远端用户开关音/视频时,将触发 onRemoteAudioStateChanged 和 onRemoteVideoStateChanged 回调。
点击下表中的链接,查看各端的回调说明。
弱网提示
网络质量是影响用户通话体验的重要因素,当用户处于弱网状态下时,通过 UI 进行提示,相当于给了用户通话质量可能变差的心理预期和原因解释,将有效提升使用体验。
用户进房后,通过每 2s 一次的 onNetworkQuality 回调获取本地用户和已订阅的远端用户的上下行网络质量评分。
根据 NetworkQuality 的数值,对网络状况进行判定并采取相应措施。
- NETWORK_QUALITY_BAD:媒体流网络质量差沟通不顺畅,建议降低采样率、码率或通过 UI 提示用户是否切换为纯语音通话。
- NETWORK_QUALITY_VERY_BAD:媒体流网络质量非常差,建议通过 UI 给出弱网提示。