网络探测
SDK 从 5.2.5 版本开始支持该功能。
startNetworkProbe
方法支持用户在加入房间前进行网络质量探测,通过相应的回调将当前网络往返时延、上下行丢包率、 网络质量数据返回给上层应用。
提示
请在加入房间前完成网络质量探测。SDK 不支持在音视频通话过程中进行网络质量探测。
开启 RTC 网络探测
通过调用 RCRTCEngine
对象的 startNetworkProbe
方法开启 RTC 网络质量探测,实现 onNetworkProbeUpLinkStats
、 onNetworkProbeDownLinkStats
、 onNetworkProbeFinished
方法接收相关的事件。
engine.onNetworkProbeStarted = (int code, String? errMsg) {
if (code == 0) {
// 开启网络探测成功
}
};
// 开启网络探 测
engine.startNetworkProbe(this);
void onNetworkProbeUpLinkStats(RCRTCNetworkProbeStats stats) {
// 汇报网络探测上行数据
}
void onNetworkProbeDownLinkStats(RCRTCNetworkProbeStats stats) {
// 汇报网络探测下行数据
}
void onNetworkProbeFinished(int code, String? errMsg) {
// 网络探测完成 code 为 0 时是正常结束,非 0 为探测中断
}
开启 RTC 网络探测
加入房间前,调用 startNetworkProbe
开启网络质量探测。开启探测成功后,会回调注册的回调来反馈探测结果。每隔约 2 秒回调一次上下行网络的带宽、丢包、网络抖动和往返时延等数据。
探测总时长约为 30 秒,30 秒后会自动停止探测并触发 onNetworkProbeFinished
回调方法通知上层应用探测结 束,此时回调中的 code 值为 0。
提示
在探测自动结束(onNetworkProbeFinished
code == 0)前,如调用 joinRoom 或 unInit 等 API 方法会打断当前正在进行的 RTC 网络探测,此时回调中的 code 值不为 0。
示例代码:
engine.onNetworkProbeStarted = (int code, String? errMsg) {
if (code == 0) {
// 开启网络探测成功
}
};
// 开启网络探测
engine.startNetworkProbe(this);
停止 RTC 网络探测
开启探测成功约 30 秒后,会自动停止探测,如果不想等待自动结束,可调用 stopNetworkProbe
方法强制停止探测。
// 停止网络探测的回调
engine?.onNetworkProbeStopped = (int code, String? errMsg) {
if (code == 0) {
// 停止网络探测成功
}
};
// 停止网络探测
engine.stopNetworkProbe();