通话数据统计
音视频通话过程中,底层音视频库会按照 RCRTCEngineSetup 中的 statsReportInterval 指定的时间间隔(默认1秒)上报通话的详细数据,上层依据此数据可进行提示,状态判断等处理。
可通过 RCRTCEngine 中的 setOnNetworkStatsListener 等方法注册监听。
详细说明
网络状态监听
方法
JavaScript
rtcEngine.setOnNetworkStatsListener(callback);
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| stats | RCRTCNetworkStats | 网络状态信息 |
示例代码
JavaScript
rtcEngine.setOnNetworkStatsListener((stats) => {
console.log('网络状态信息:', stats);
});
本地音频统计监听
方法
JavaScript
rtcEngine.setOnLocalAudioStatsListener(callback);
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| stats | RCRTCLocalAudioStats | 音频发送状态信息 |
示例代码
JavaScript
rtcEngine.setOnLocalAudioStatsListener((stats) => {
console.log('本地音频统计:', stats);
});
本地视频统计监听
方法
JavaScript
rtcEngine.setOnLocalVideoStatsListener(callback);
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| stats | RCRTCLocalVideoStats | 视频发送状态信息 |
示例代码
JavaScript
rtcEngine.setOnLocalVideoStatsListener((stats) => {
console.log('本地视频统计:', stats);
});
本地自定义视频统计监听
方法
JavaScript
rtcEngine.setOnLocalCustomVideoStatsListener(callback);
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| tag | String | 自定义视频资源 TAG |
| stats | RCRTCLocalVideoStats | 自定义视频资源发送状态信息 |
示例代码
JavaScript
rtcEngine.setOnLocalCustomVideoStatsListener((tag, stats) => {
console.log('本地自定义视频统计:', tag, stats);
});
远端音频统计监听
在直播场景下,主播角色的用户可通过该回调获取房间内正在说法的其他主播及其音量。在会议场景下,与会用户可通过该回调获取房间内正在说法的其他用户及其音量。
方法
JavaScript
rtcEngine.setOnRemoteAudioStatsListener(callback);
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| roomId | String | 远端房间 ID |
| userId | String | 远端 用户 ID |
| stats | RCRTCRemoteAudioStats | 音频接收质量状态信息 |
示例代码
JavaScript
rtcEngine.setOnRemoteAudioStatsListener((roomId, userId, stats) => {
console.log('远端音频统计:', roomId, userId, stats);
});
远端视频统计监听
方法
JavaScript
rtcEngine.setOnRemoteVideoStatsListener(callback);
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| roomId | String | 远端房间 ID |
| userId | String | 远端用户 ID |
| stats | RCRTCRemoteVideoStats | 视频接收质量状态信息 |
示例代码
JavaScript
rtcEngine.setOnRemoteVideoStatsListener((roomId, userId, stats) => {
console.log('远端视频统计:', roomId, userId, stats);
});
合流音频统计监听
方法
JavaScript
rtcEngine.setOnLiveMixAudioStatsListener(callback);
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| stats | RCRTCRemoteAudioStats | 合流音频接收质量状态信息 |
示例代码
JavaScript
rtcEngine.setOnLiveMixAudioStatsListener((stats) => {
console.log('合流音频统计:', stats);
});
合流成员音频统计监听
在直播场景下,观众可以通过该回调获取正在说话的主播的音量。
方法
JavaScript
rtcEngine.setOnLiveMixMemberAudioStatsListener(callback);
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| userId | String | 远端用户 ID |
| volume | Number | 远端用户音量 |
示例代码
JavaScript
rtcEngine.setOnLiveMixMemberAudioStatsListener((userId, volume) => {
console.log('合流成员音频统计:', userId, volume);
});
合流视频统计监听
方法
JavaScript
rtcEngine.setOnLiveMixVideoStatsListener(callback);
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| stats | RCRTCRemoteVideoStats | 合流视频接收质量状态信息 |
示例代码
JavaScript
rtcEngine.setOnLiveMixVideoStatsListener((stats) => {
console.log('合流视频统计:', stats);
});
远端自定义视频统计监听
方法
JavaScript
rtcEngine.setOnRemoteCustomVideoStatsListener(callback);
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| roomId | String | 远端房间 ID |
| userId | String | 远端用户 ID |
| tag | String | 远端自定义视频资源 TAG |
| stats | RCRTCRemoteVideoStats | 自定义视频资源接收质量状态信息 |
示例代码
JavaScript
rtcEngine.setOnRemoteCustomVideoStatsListener((roomId, userId, tag, stats) => {
console.log('远端自定义视频统计:', roomId, userId, tag, stats);
});
数据结构说明
RCRTCNetworkStats
| 属性 | 类型 | 说明 |
|---|---|---|
| type | RCRTCNetworkType | 网络类型,未知/WIFI/移动网络 |
| ip | String | IP 地址 |
| sendBitrate | Number | 发送码率,单位:kbps |
| receiveBitrate | Number | 接收码率,单位:kbps |
| rtt | Number | 往返延时,单位:ms |
RCRTCLocalAudioStats
| 属性 | 类型 | 说明 |
|---|---|---|
| codec | RCRTCAudioCodecType | 编码类型,PCMU/OPUS |
| bitrate | Number | 码率,单位:kbps |
| volume | Number | 音量 |
| packageLostRate | Number | 丢包率:取值范围是 0-100 |
| rtt | Number | 往返延时,单位:ms |
RCRTCLocalVideoStats
| 属性 | 类型 | 说明 |
|---|---|---|
| tiny | Boolean | 小流标记,true 小流,false 大流 |
| codec | RCRTCVideoCodecType | 编码类型,H264 |
| bitrate | Number | 码率,单位:kbps |
| fps | Number | 视频帧率 |
| width | Number | 视频宽度 |
| height | Number | 视频高度 |
| packageLostRate | Number | 丢包率:取值范围是 0-100 |
| rtt | Number | 往返延时,单位:ms |
RCRTCRemoteAudioStats
| 属性 | 类型 | 说明 |
|---|---|---|
| codec | RCRTCAudioCodecType | 编码类型,PCMU/OPUS |
| bitrate | Number | 码率,单位:kbps |
| volume | Number | 音量 |
| packageLostRate | Number | 丢包率:取值范围是 0-100 |
| rtt | Number | 往返延时,单位:ms |
RCRTCRemoteVideoStats
| 属性 | 类型 | 说明 |
|---|---|---|
| codec | RCRTCVideoCodecType | 编码类型,H264 |
| bitrate | Number | 码率,单位:kbps |
| fps | Number | 视频帧率 |
| width | Number | 视频宽度 |
| height | Number | 视频高度 |
| packageLostRate | Number | 丢包率:取值范围是 0-100 |
| rtt | Number | 往返延时,单位:ms |
完整示例代码
JavaScript
// 设置状态监听回调
rtcEngine.setOnNetworkStatsListener((stats) => {
// 网络状态信息
console.log('网络状态信息:', stats);
});
rtcEngine.setOnLocalAudioStatsListener((stats) => {
// 音频发送状态信息
console.log('本地音频统计:', stats);
});
rtcEngine.setOnLocalVideoStatsListener((stats) => {
// 视频发送状态信息
console.log('本地视频统计:', stats);
});
rtcEngine.setOnRemoteAudioStatsListener((roomId, userId, stats) => {
// 音频接收状态信息
console.log('远端音频统计:', roomId, userId, stats);
});
rtcEngine.setOnRemoteVideoStatsListener((roomId, userId, stats) => {
// 视频接收状态信息
console.log('远端视频统计:', roomId, userId, stats);
});
rtcEngine.setOnLiveMixAudioStatsListener((stats) => {
// 合流音频接收状态信息
console.log('合流音频统计:', stats);
});
rtcEngine.setOnLiveMixVideoStatsListener((stats) => {
// 合流视频接收状态信息
console.log('合流视频统计:', stats);
});
rtcEngine.setOnLocalCustomVideoStatsListener((tag, stats) => {
// 自定义视频发送状态信息
console.log('本地自定义视频统计:', tag, stats);
});
rtcEngine.setOnRemoteCustomVideoStatsListener((roomId, userId, tag, stats) => {
// 自定义视频接收状态信息
console.log('远端自定义视频统计:', roomId, userId, tag, stats);
});
// 调用以上接口参数为空,即为取消状态监听回调。如下示例
// 取消网络状态监听
rtcEngine.setOnNetworkStatsListener();
console.log('已取消网络状态监听');