通话数据统计
音视频通话过程中,底层音视频库会按照 RCRTCEngineSetup#statsReportInterval 中指定的时间间隔(默认1秒)上报通话的详细数据,上层依据此数据可进行提示,状态判断等处理。
设置通话数据统计监听
方法
Dart
RCRTCEngine.setStatsListener();
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| listener | RCRTCStatsListener | 是 | 统计监听器,传 null 表示取消监听 |
示例代码
Dart
/// 设置状态监听回调
engine.setStatsListener(StatsListenerImpl());
/// 取消状态监听回调
engine.setStatsListener(null);
统计回调详细说明
网络状态统计回调
方法
Dart
RCRTCStatsListener.onNetworkStats();
参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| stats | RCRTCNetworkStats | 网络状态信息 |
示例代码
Dart
void onNetworkStats(RCRTCNetworkStats stats) {
// 网络状态信息
print('网络类型: ${stats.type}');
print('IP地址: ${stats.ip}');
print('发送码率: ${stats.sendBitrate} kbps');
print('接收码率: ${stats.receiveBitrate} kbps');
print('往返延时: ${stats.rtt} ms');
}
本地音频统计回调
方法
Dart
RCRTCStatsListener.onLocalAudioStats();
参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| stats | RCRTCLocalAudioStats | 音频发送状态信息 |
示例代码
Dart
void onLocalAudioStats(RCRTCLocalAudioStats stats) {
// 音频发送状态信息
print('音频编码类型: ${stats.codec}');
print('音频码率: ${stats.bitrate} kbps');
print('音频音量: ${stats.volume}');
print('音频丢包率: ${stats.packageLostRate}%');
print('音频往返延时: ${stats.rtt} ms');
}
本地视频统计回调
方法
Dart
RCRTCStatsListener.onLocalVideoStats();
参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| stats | RCRTCLocalVideoStats | 视频发送状态信息 |
示例代码
Dart
void onLocalVideoStats(RCRTCLocalVideoStats stats) {
// 视频发送状态信息
print('视频流类型: ${stats.tiny ? "小流" : "大流"}');
print('视频编码类型: ${stats.codec}');
print('视频码率: ${stats.bitrate} kbps');
print('视频帧率: ${stats.fps} fps');
print('视频分辨率: ${stats.width}x${stats.height}');
print('视频丢包率: ${stats.packageLostRate}%');
print('视频往返延时: ${stats.rtt} ms');
}
本地自定义视频统计回调
方法
Dart
RCRTCStatsListener.onLocalCustomVideoStats();