human: 如何处理七牛云的实时音视频通话质量统计

gpt: [实时音视频](https://developer.qiniu.com/rtc) > 使用指南 > Android >通话质量统计

#  通话质量统计

最近更新时间: 2023-09-05 15:58:02

本文主要介绍 SDK 如何对通话过程中的网络以及音视频的质量进行监控。

> 获取通话中的质量监测信息前，请确保您已经**加入了房间** 并且**已经发布或订阅了相关的音视频 Track** 。

# 上下行网络质量

## 获取本地上下行网络质量

在**加入了房间** 并且**已经发布或者订阅了音视频 Track** 后，可通过
[QNRTCClient.setNetworkQualityListener](https://developer.qiniu.com/rtc/api/8684/QNRTCClient#setNetworkQualityListener)
接口设置
[QNNetworkQualityListener](https://developer.qiniu.com/rtc/api/8671/QNNetworkQualityListener)
回调来监听本地的上下行网络质量。该监听**每隔 3s** 会回调一次当前的网络上下行质量信息，质量等级可参考
[QNNetworkGrade](https://developer.qiniu.com/rtc/api/8669/QNNetworkGrade)。

其中，质量等级是基于当前用户通话过程中的网络、丢包以及 RTT 综合评估得出的。

## 获取远端上下行网络质量

不同于本地上下行网络质量的监听获取方式，远端上下行网络质量需**主动调用接口获取** ，您可在需要的时候调用
[QNRTCClient.getUserNetworkQuality](https://developer.qiniu.com/rtc/api/8684/QNRTCClient#getUserNetworkQuality)
接口获取当前房间内所有远端用户的上下行质量信息。其中，获取到的质量等级可参考
[QNNetworkGrade](https://developer.qiniu.com/rtc/api/8669/QNNetworkGrade)。

# 音频质量统计

## 获取本地音频质量统计

SDK 质量统计接口均为**主动调用接口** ，您可以在适当的时机通过调用
[QNRTCClient.getLocalAudioTrackStats](https://developer.qiniu.com/rtc/api/8684/QNRTCClient#getLocalAudioTrackStats)
接口获取当前本地的音频质量统计信息，并通过 trackID 来获取对应轨道的质量统计。获取到的质量统计内容
[QNLocalAudioTrackStats](https://developer.qiniu.com/rtc/api/8661/QNLocalAudioTrackStats)
主要包含如下信息：

属性| 描述  
---|---  
uplinkBitrate| 本地音频上行的码率，单位 bps  
uplinkRTT| 本地音频上行的网络延时，单位 ms  
uplinkLostRate| 本地音频上行的丢包率，范围 [0, 100]  
  
## 获取远端音频质量统计

SDK 质量统计接口均为**主动调用接口** ，您可以在适当的时机通过调用
[QNRTCClient.getRemoteAudioTrackStats](https://developer.qiniu.com/rtc/api/8684/QNRTCClient#getRemoteAudioTrackStats)
接口获取当前远端的音频质量统计信息，并通过 trackID 来获取对应轨道的质量统计。获取到的质量统计内容
[QNRemoteAudioTrackStats](https://developer.qiniu.com/rtc/api/8675/QNRemoteAudioTrackStats)
主要包含如下信息：

属性| 描述  
---|---  
downlinkBitrate| 本地拉取远端音频时下行的码率，单位 bps  
downlinkLostRate| 本地拉取远端音频时下行的丢包率，范围 [0, 100]  
uplinkRTT| 远端音频上行的网络延时，单位 ms  
uplinkLostRate| 远端音频上行的丢包率，范围 [0, 100]  
  
# 视频质量统计

## 获取本地视频质量统计

SDK 质量统计接口均为**主动调用接口** ，您可以在适当的时机通过调用
[QNRTCClient.getLocalVideoTrackStats](https://developer.qiniu.com/rtc/api/8684/QNRTCClient#getLocalVideoTrackStats)
接口获取当前本地的视频质量统计信息，并通过 trackID 来获取对应轨道的质量统计。获取到的质量统计内容
[QNLocalVideoTrackStats](https://developer.qiniu.com/rtc/api/8664/QNLocalVideoTrackStats)
主要包含如下信息：

属性| 描述  
---|---  
profile|
当前所统计视频的[质量等级](https://developer.qiniu.com/rtc/api/10056/QNTrackProfile)，profile
说明亦可参考[视频大小流](https://developer.qiniu.com/rtc/development_guidelines/8772/video-
size-flow-android)文档  
uplinkFrameRate| 本地视频上行的帧率  
uplinkBitrate| 本地视频上行的码率，单位 bps  
uplinkRTT| 本地视频上行的网络延时，单位 ms  
uplinkLostRate| 本地视频上行的丢包率，范围 [0, 100]  
uplinkFrameWidth| 本地上行视频帧的宽度，该数值为 SDK 实际对齐后编码发布的视频帧宽度  
uplinkFrameHeight| 本地上行视频帧的高度，该数值为 SDK 实际对齐后编码发布的视频帧高度  
captureFrameRate| 本地采集的视频帧率，单位 fps  
captureFrameWidth| 本地采集的视频帧宽度  
captureFrameHeight| 本地采集的视频帧高度  
targetFrameRate| 期望的视频编码帧率，单位 fps  
targetFrameWidth| 期望的视频编码宽度  
targetFrameHeight| 期望的视频编码高度  
  
## 获取远端视频质量统计

SDK 质量统计接口均为**主动调用接口** ，您可以在适当的时机通过调用
[QNRTCClient.getRemoteVideoTrackStats](https://developer.qiniu.com/rtc/api/8684/QNRTCClient#getRemoteVideoTrackStats)
接口获取当前远端的视频质量统计信息，并通过 trackID 来获取对应轨道的质量统计。获取到的质量统计内容
[QNRemoteVideoTrackStats](https://developer.qiniu.com/rtc/api/8681/QNRemoteVideoTrackStats)
主要包含如下信息：

属性| 描述  
---|---  
profile|
当前订阅的视频的[质量等级](https://developer.qiniu.com/rtc/api/10056/QNTrackProfile)，profile
说明亦可参考[视频大小流](https://developer.qiniu.com/rtc/development_guidelines/8772/video-
size-flow-android)文档  
downlinkFrameRate| 本地拉取远端视频时下行的帧率  
downlinkBitrate| 本地拉取远端视频时下行的码率，单位 bps  
downlinkLostRate| 本地拉取远端视频时下行的丢包率，范围 [0, 100]  
uplinkRTT| 远端视频上行的网络延时，单位 ms  
uplinkLostRate| 远端视频上行的丢包率，范围 [0, 100]  
uplinkFrameWidth| 远端上行视频帧宽度  
uplinkFrameHeight| 远端上行视频帧高度  
  
# 示例代码

上述已经简单介绍了质量统计信息的获取方式，相对应的示例代码可参考 [QNRTC-API-Examples](https://github.com/pili-
engineering/QNRTC-Android/blob/master/QNRTC-API-
Examples/app/src/main/java/com/qiniu/droid/rtc/api/examples/activity/MediaStatisticsActivity.java)。

以上内容是否对您有帮助？