
# 通话质量监测
#### 功能描述
加入频道后，SDK会每隔2秒自动触发通话质量相关的回调，上报当前通话的网络质量、本地和远端的音视频统计信息。
#### 上报接口
![](https://support.huaweicloud.com/bestpractice-rtc/zh-cn_image_0000001227351129.png)
#### 通话质量上报
onNetworkQualityNotify回调上报当前通话中每个入会者的上下行网络质量。默认开启，每2s上报一次。
```
- (void)onNetworkQualityNotify:(NSArray <HWRtcQualityInfo *> * _Nullable)upStreamQualityArray
       downStreamQualityInfo:(NSArray <HWRtcQualityInfo *> * _Nullable)downStreamQualityArray
{
    dispatch_async(dispatch_get_main_queue(),^{
        for (HWRtcQualityInfo *info in upStreamQualityArray) {
            //本地网络质量信息数据处理
        }
        for (HWRtcQualityInfo *info in downStreamQualityArray) {
            //远端网络质量信息数据处理
        }
    });
}
```
#### 本地音频流统计信息报告
onLocalAudioStatsNotify回调上报本地设备发送音频流的统计信息。您可以了解到当前通话声道数（单声道或双声道）、发送音频的采样率、码率、比特率、丢包率、延时和抖动等。
```
- (void)onLocalAudioStatsNotify:(NSArray <HWRtcLocalAudioStats *> * _Nullable)localAudioStatsArray{
    dispatch_async(dispatch_get_main_queue(), ^{
        for (HWRtcLocalAudioStats *audioStatsInfo in localAudioStatsArray) {
            //本地音频信息数据处理
        }
    });
}
```
#### 远端音频流统计信息报告
onRemoteAudioStatsNotify回调上报当前通话中每个远端用户音频流的统计信息。您可以了解到每个远端用户发送的音频流的采样率、声道数、码率、丢包率、延时、抖动和卡顿时长等一些信息。
```
- (void)onRemoteAudioStatsNotify:(NSArray <HWRtcRemoteAudioStats *> * _Nullable)remoteAudioStatsArray{
    dispatch_async(dispatch_get_main_queue(), ^{
        for (HWRtcRemoteAudioStats *audioStatsInfo in remoteAudioStatsArray) {
           //远端音频信息数据处理
        }
    });
}
```
#### 本地视频流统计信息上报
onLocalVideoStatsNotify回调向您报告当前本地视频流统计信息，包括帧率、码率、延时、抖动等信息。
```
- (void)onLocalVideoStatsNotify:(NSArray <HWRtcLocalVideoStats *> * _Nullable)localVideoStatsArray{
    dispatch_async(dispatch_get_main_queue(), ^{
        for (HWRtcLocalVideoStats *videoStatsInfo in localVideoStatsArray) {
           //本地视频信息数据处理
        }
    });
}
```
#### 远端视频流状态监控
onRemoteVideoStatsNotify回调向您报告当前远端视频流统计信息，包括帧率、码率、延时、抖动和卡顿时长等信息。
```
-(void)onRemoteVideoStatsNotify:(NSArray <HWRtcRemoteVideoStats *> * _Nullable)remoteVideoStatsArray{
    dispatch_async(dispatch_get_main_queue(), ^{
        for (HWRtcRemoteVideoStats *videoStatsInfo in remoteVideoStatsArray) {
           //处理远端视频信息
        });
    }
}
```
#### 视频流状态监控
onVideoStatsNotify回调上报视频流的状态，包括本地上行视频流和远端用户的下行视频流状态。
```
- (void)onVideoStatsNotify:(NSArray<HWRtcVideoStatsInfo *> *)videoStatsArray remoteVideoInfo:(NSArray<HWRtcVideoStatsInfo *> *)remoteVideoStatsInfos
{
    dispatch_async(dispatch_get_main_queue(), ^{
        for (HWRtcVideoStatsInfo *videoStatsInfo in videoStatsArray) {
            //本地视频信息数据处理
        }
        for (HWRtcVideoStatsInfo *remoteVideoStatsInfo in videoStatsArray) {
            //远端视频信息数据处理
        }
    });
}
```
#### 音频流状态监控
onAudioStatsNotify回调上报音频流的状态，包括本地上行音频流和远端用户的下行音频流状态。
```
- (void)onAudioStatsNotify:(NSArray<HWRtcAudioStatsInfo *> *)audioStatsArray remoteAudioInfo:(NSArray<HWRtcAudioStatsInfo *> *)remoteAudioStatsInfos
{https://support.huaweicloud.com/csdk-rtc/rtc_05_0167.html
    dispatch_async(dispatch_get_main_queue(), ^{
        for (HWRtcAudioStatsInfo *audioStatsInfo in audioStatsArray) {
            //本地音频信息数据处理
        }
        for (HWRtcAudioStatsInfo *remoteAudioStatsInfo in remoteAudioStatsInfos) {
            //远端音频信息数据处理
        }
    });
}
```
#### API参考
[onNetworkQualityNotify](https://support.huaweicloud.com/csdk-rtc/rtc_05_0065.html#section41)
[onLocalVideoStatsNotify](https://support.huaweicloud.com/csdk-rtc/rtc_05_0065.html#section42)
[onLocalAudioStatsNotify](https://support.huaweicloud.com/csdk-rtc/rtc_05_0065.html#section44)
[onRemoteVideoStatsNotify](https://support.huaweicloud.com/csdk-rtc/rtc_05_0065.html#section43)
[onRemoteAudioStatsNotify](https://support.huaweicloud.com/csdk-rtc/rtc_05_0065.html#section45)
[onVideoStatsNotify](https://support.huaweicloud.com/csdk-rtc/rtc_05_0065.html#section33)
[onAudioStatsNotify](https://support.huaweicloud.com/csdk-rtc/rtc_05_0065.html#section34)
