在对网络质量要求高的场景下,Agora 建议在正式开始通话或直播前进行网络质量探测,判断或预测用户当前的网络状况是否良好,是否可以满足音频码率或者当前选定的视频属性的目标码率,从而保证通信顺畅。
开始前,请确保你已参考《快速开始》文档在你的项目中实现基本的音视频通话或直播功能。
参考下列步骤在正式通话或直播前进行网络质量探测:
调用两次 createClient
创建两个 Client:
调用 createMicrophoneAndCameraTracks
创建音视频轨道。
两个 Client 均调用 join
,进入一个测试用的频道。
在 uplinkClient 上调用 publish
发布音视频轨道,在 downlinkClient 上调用 subscribe
方法订阅音视频轨道。
监听 uplinkClient.on("network-quality")
事件获取本地与 Agora 服务器之间的上行网络状况。
监听 downlinkClient.on("network-quality")
事件获取本地与 Agora 服务器之间的下行网络状况。
client.on("network-quality")
回调。如果你想获得发送或者接收媒体轨道的具体统计数据,如发送/接收码率、端到端延迟等,可以在 uplinkClient 上调用 getLocalAudioStats
和 getLocalVideoStats
获取上行统计数据,在 downlinkClient 上调用 getRemoteAudioStats
和 getRemoteVideoStats
获取下行统计数据。
// 获取上行网络质量
uplinkClient.on("network-quality", (quality) => {
console.log("uplink network quality", quality.uplinkNetworkQuality);
});
// 获取下行网络质量
downlinkClient.on("network-quality", (quality) => {
console.log("downlink network quality", quality.downlinkNetworkQuality);
});
// 获取上行统计数据
uplinkVideoStats = uplinkClient.getLocalVideoStats();
// 获取下行统计数据
downlinkVideoStats = downlinkClient.getRemoteVideoStats()[<UPLINKCLIENT_UID>];
console.log("uplink video stats", uplinkVideoStats);
console.log("downlink video stats", downlinkVideoStats);