通话质量统计
本文主要介绍 SDK 如何对通话过程中的网络以及音视频的质量进行监控。
获取通话中的质量监测信息前,请确保您已经加入了房间并且已经发布或订阅了相关的音视频 Track。
上下行网络质量
获取本地上下行网络质量
在加入了房间并且订阅了音视频 Track 后,可通过 QNNetworkQualityListener.OnNetworkQualityNotified 回调来获取本地的上下行网络质量。每隔 3s 会回调一次当前的网络上下行质量信息,质量等级可参考 QNNetworkGrade。
其中,质量等级是基于当前用户通话过程中的网络、丢包以及 RTT 综合评估得出的。
音频质量统计
获取本地音频质量统计
SDK 质量统计接口均为主动调用接口,您可以在适当的时机通过调用 QNRTCClient.GetLocalAudioTrackStats 接口获取当前本地的音频质量统计信息,并通过 trackID 来获取对应轨道的质量统计。获取到的质量统计内容 QNLocalAudioTrackStats 主要包含如下信息:
属性 | 描述 |
---|---|
uplinkBitrate | 本地音频上行的码率,单位 bps |
uplinkRtt | 本地音频上行的网络延时,单位 ms |
uplinkLostrate | 本地音频上行的丢包率,范围 [0, 100] |
获取远端音频质量统计
SDK 质量统计接口均为主动调用接口,您可以在适当的时机通过调用 QNRTCClient.GetRemoteAudioTrackStats 接口获取当前远端的音频质量统计信息,并通过 trackID 来获取对应轨道的质量统计。获取到的质量统计内容 QNRemoteAudioTrackStats 主要包含如下信息:
属性 | 描述 |
---|---|
downlinkBitrate | 本地拉取远端音频时下行的码率,单位 bps |
downlinkLostrate | 本地拉取远端音频时下行的丢包率,范围 [0, 100] |
uplinkRtt | 远端音频上行的网络延时,单位 ms |
uplinkLostrate | 远端音频上行的丢包率,范围 [0, 100] |
视频质量统计
获取本地视频质量统计
SDK 质量统计接口均为主动调用接口,您可以在适当的时机通过调用 QNRTCClient.GetLocalVideoTrackStats 接口获取当前本地的视频质量统计信息,并通过 trackID 来获取对应轨道的质量统计。获取到的质量统计内容 QNLocalVideoTrackStats 主要包含如下信息:
属性 | 描述 |
---|---|
profile | 当前所统计视频的质量等级 |
uplinkFramerate | 本地视频上行的帧率 |
uplinkBitrate | 本地视频上行的码率,单位 bps |
uplinkRtt | 本地视频上行的网络延时,单位 ms |
uplinkLostrate | 本地视频上行的丢包率,范围 [0, 100] |
uplinkFrameWidth | 本地编码输出的视频宽度 |
uplinkFrameHeight | 本地编码输出的视频高度 |
captureFramerate | 本地实际采集到的视频帧率 |
captureFrameWidth | 本地采集视频帧宽度 |
captureFrameHeight | 采集视频帧宽高度 |
targetFramerate | 期望的视频帧率 |
targetFrameWidth | 期望的视频帧宽度 |
targetFrameHeight | 期望的视频帧高度 |
获取远端视频质量统计
SDK 质量统计接口均为主动调用接口,您可以在适当的时机通过调用 QNRTCClient.GetRemoteVideoTrackStats 接口获取当前远端的视频质量统计信息,并通过 trackID 来获取对应轨道的质量统计。获取到的质量统计内容 QNRemoteVideoTrackStats 主要包含如下信息:
属性 | 描述 |
---|---|
profile | 当前订阅的视频的质量等级 |
downlinkFramerate | 本地拉取远端视频时下行的帧率 |
downlinkBitrate | 本地拉取远端视频时下行的码率,单位 bps |
downlinkLostrate | 本地拉取远端视频时下行的丢包率,范围 [0, 100] |
uplinkRtt | 远端视频上行的网络延时,单位 ms |
uplinkLostrate | 远端视频上行的丢包率,范围 [0, 100] |
uplinkFrameWidth | 远端用户编码输出的视频宽度 |
uplinkFrameHeight | 远端用户编码输出的视频高度 |
示例代码
上述已经简单介绍了质量统计信息的获取方式,相对应的示例代码可参考 API-Examples-HarmonyOS。