文档中心
全部产品
Console Agora.io 社区 提交工单

Offline-如何检测通话质量?

分类: 集成类    平台: Android / iOS / macOS / Windows / Unity / electron   最后更新时间: 2020/12/09 00:49:04

通话质量检测可以从通话前和通话中两个维度来梳理。

通话前

网络质量检测

startLastmileProbeTest:通话前网络质量检测

在用户加入频道前,或直播观众切换为主播前,调用该方法对本地 Last-mile 网络质量进行探测,判断和预测目前的上行网络质量是否足够好。

启用该方法后,SDK 会依次返回如下 2 个回调:

  • onLastmileQuality:约 2 秒内返回。该回调通过打分反馈上下行网络质量,因此更主观。
  • onLastmileProbeResult:约 30 秒内返回。该回调通过客观数据反馈上下行网络质量,因此更客观。回调数据包含探测状态、往返时延、上下行网络丢包率、网络抖动和可用网络带宽估计。

设备及网络连接检测

startEchoTest:通话前设备及网络连接检测

在加入频道前,调用该方法对本地音频设备(麦克风或扬声器)和网络连接进行测试,可以排除音频设备硬件故障。

测试过程中,用户先说一段话,声音会在设置的时间间隔后放出来。如果用户能正常听到自己刚才说的话,就表示系统音频设备和网络连接都是正常的。

通话中

通话过程中,SDK 会每 2 秒触发以下回调。如果是反应远端用户的网络质量,则如果远端有多个用户或主播,则每 2 秒触发多个相应的回调。

网络及传输质量透明

1、onNetworkQuality:通话中用户的上下行网络质量回调

该回调通过打分反馈上下行网络质量。其中上行网络质量基于上行音视频的发送码率、上行丢包率、平均往返时延和网络抖动计算;下行网络质量基于下行网络的丢包率、平均往返延时和网络抖动计算

2、onLocalVideoStats:通话中本地视频流的统计信息回调

该回调反馈通话中本地设备发送视频流的统计信息,包含视频发送的码率和帧率、本地输出帧率、目标码率和帧率以及网络自适应情况。

3、onRemoteVideoStats:通话中远端视频流的统计信息回调

该回调反馈通话中远端用户发送的视频流的统计信息,包含远端视频流的宽和高,视频接收的码率、远端输出帧率以及该远端视频流是大流还是小流。

4、onRemoteAudioStats:通话中远端音频流的统计信息回调

该回调反馈通话中远端用户发送的音频流的统计信息,包含远端用户发送的音频流质量打分,发送端-接收端延迟,接收端网络抖动引起的延迟,以及音频丢帧率。

5、onRtcStats:当前通话统计回调

该回调反馈当前通话相关的统计信息,包含通话时长、累计发送和接收字节数、发送和接收码率、音频发送和接收码率、视频发送和接收码率、当前频道内的人数、客户端-服务器延迟、当前系统的 CPU 使用率,以及当前 App 的 CPU 使用率。

6、onRemoteAudioTransportStats:通话中远端音频流传输的统计信息回调

该回调通过音频包相关数据的计算,如丢包、网络延迟、远端音频包的接收码率等,反馈当前网络质量。

7、onRemoteVideoTransportStats:通话中远端视频流传输的统计信息回调

该回调通过视频包相关数据的计算,如丢包、网络延迟、远端音频包的接收码率等,反馈当前网络质量。

音视频状态监控

1、onLocalVideoStateChanged:本地视频状态发生改变回调

该回调反馈当前的本地视频状态,以及视频出错的原因,如采集设备故障或编码失败等。当本地视频出现故障时,该回调可以帮助定位及排查问题。

2、onRemoteVideoStateChanged:远端视频状态发生改变回调

该回调反馈当前的远端视频状态是正常还是卡住。

旁路推流状态监控

onRtmpStreamingStateChanged:RTMP 推流状态

该回调反馈 RTMP 的推流状态,以及推流出错的原因。