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