网络质量探测
自 5.1.17 起, RTCLib SDK 提供了一个 startRTCProbeTest:
方法,支持用户在加入房间前进行网络质量探测,然后通过代理回调将当前网络质量的相关数据,包括往返时延、上下行丢包率、上下行网络带宽等数据返回给上层应用。
提示
请在加入房间前完成网络质量探测。SDK 不支持在音视频通话过程中进行网络质量探测。
设置 RTC 网络探测回调事件
通过 RCRTCEngine
设置 probeTestDelegate
代理,开始探测后网络质量探测结果在 RCRTCProbeTestDelegate
协议方法里回调。
示例代码:
//设置探测结果回调代理
[[RCRTCEngine sharedInstance] setProbeTestDelegate:self];
//实现探测结果回调协议
#pragma mark - RCRTCProbeTestDelegate
/*!
汇报探测状态数据
*/
- (void)didReportProbeForms:(NSArray <RCRTCProbeStatusForm *>*)forms {
//开始探测后,每 2s 回调一次报表数据,持续 30s。
NSLog(@"%@",forms);
}
/*!
探测完成
*/
- (void)didRTCProbeComplete {
NSLog(@"探测完成");
}
/*!
探测中断
*/
- (void)didRTCProbeInterrput:(RCRTCCode)errorCode {
NSLog(@"探测中断");
}
开启 RTC 网络探测
加入房间前,调用 startRTCProbeTest:
开启网络质量探测。开启探测成功后,会通过 RCRTCProbeTestDelegate
协议方法回调来反馈探测结果。每隔约 2 秒回调一次上下行网络的带宽、丢包、网络抖动和往返时延等数据。
探测总时长约为 30 秒,30 秒后会自动停止探测并调用 didRTCProbeComplete
回调方法通知上层应用探测结束。
提示
在探测自动结束 didRTCProbeComplete
前,如调用 joinRoom
加房间操作会打断当前正在进行的 RTC 网络探测。
示例代码:
[[RCRTCEngine sharedInstance] startRTCProbeTest:^(BOOL isSuccess, RCRTCCode code) {
if (isSuccess) {
NSLog(@"调用成功 code:%@",@(code));
}
else {
NSLog(@"调用失败 code:%@",@(code));
}
}];