通话数据统计
音视频通话过程中,底层音视频库会按照 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();
参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| tag | String | 自定义视频资源 TAG |
| stats | RCRTCLocalVideoStats | 自定义视频资源发送状态信息 |
示例代码
Dart
void onLocalCustomVideoStats(String tag, RCRTCLocalVideoStats stats) {
// 自定义视频发送状态信息
print('自定义视频TAG: $tag');
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.onRemoteAudioStats();
参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| userId | String | 远端用户 ID |
| stats | RCRTCRemoteAudioStats | 音频接收质量状态信息 |
示例代码
Dart
void onRemoteAudioStats(String userId, RCRTCRemoteAudioStats stats) {
// 音频接收状态信息
print('远端用户ID: $userId');
print('音频编码类型: ${stats.codec}');
print('音频码率: ${stats.bitrate} kbps');
print('音频音量: ${stats.volume}');
print('音频丢包率: ${stats.packageLostRate}%');
print('音频往返延时: ${stats.rtt} ms');
}
远端视频统计回调
方法
Dart
RCRTCStatsListener.onRemoteVideoStats();
参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| userId | String | 远端用户 ID |
| stats | RCRTCRemoteVideoStats | 视频接收质量状态信息 |
示例代码
Dart
void onRemoteVideoStats(String userId, RCRTCRemoteVideoStats stats) {
// 视频接收状态信息
print('远端用户ID: $userId');
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.onLiveMixAudioStats();
参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| stats | RCRTCRemoteAudioStats | 合流音频接收质量状态信息 |
示例代码
Dart
void onLiveMixAudioStats(RCRTCRemoteAudioStats stats) {
// 合流音频接收状态信息
print('合流音频编码类型: ${stats.codec}');
print('合流音频码率: ${stats.bitrate} kbps');
print('合流音频音量: ${stats.volume}');
print('合流音频丢包率: ${stats.packageLostRate}%');
print('合流音频往返延时: ${stats.rtt} ms');
}
合流成员音频统计回调
方法
Dart
RCRTCStatsListener.onLiveMixMemberAudioStats();
参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| userId | String | 远端用户 ID |
| volume | int | 远端用户音量 |
示例代码
Dart
void onLiveMixMemberAudioStats(String userId, int volume) {
// 合流成员音频状态信息
print('合流成员用户ID: $userId');
print('合流成员音量: $volume');
}
合流视频统计回调
方法
Dart
RCRTCStatsListener.onLiveMixVideoStats();
参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| stats | RCRTCRemoteVideoStats | 合流视频接收质量状态信息 |
示例代码
Dart
void onLiveMixVideoStats(RCRTCRemoteVideoStats stats) {
// 合流视频接收状态信息
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.onRemoteCustomVideoStats();