通话数据统计
SDK 通过通话状态数据监听类 RCRTCStatsListener 提供详细数据,上层依据此数据可进行提示,状态判断等处理。
您可以通过 RCRTCStatsListener 监听类提供的 OnNetworkStats、 OnLocalAudioStats、OnLocalVideoStats、OnRemoteAudioStats、OnRemoteVideoStats、OnLiveMixAudioStats、OnLiveMixVideoStats 获取 SDK 上报的音频统计数据,例如音频流相关用户数据、音频流质量数据、网络状态与质量数据等。
注册通话状态数据监听器
通过 RCRTCEngine.SetStatsListener 方法注册取消状态监听。
注册监听器后,上层会收到底层音频库在音频通话过程中上报的通话详细数据。上报频率按照 RCRTCEngineSetup#statusReportInterval 中指定的时间间隔(默认1秒)。
OnNetworkStats
OnNetworkStats 回调方法通过 RCRTCNetworkStats 对象上报网络状态数据。
| 回调参数 | 回调类型 | 说明 |
|---|---|---|
stats | RCRTCNetworkStats | 网络状态信息的输出,默认每秒输出一次 |
-
RCRTCNetworkStats类说明:RCRTCNetworkStats类属性类型 说明 TypeRCRTCNetworkTypeUNKNOWN: 未知
WIFI: 无线网络
MOBILE: 手机网络IpString本端 IP 地址 SendBitrateint发送码率,单位:kbps ReceiveBitratelong接收码率,单位:kbps Rttint往返延时,单位:ms
OnLocalAudioStats
OnLocalAudioStats 回调方法通过 RCRTCLocalAudioStats 对象上报网络状态数据。
| 回调参数 | 回调类型 | 说明 |
|---|---|---|
stats | RCRTCLocalAudioStats | 本地饮品状态信息的输出,默认每秒输出一次 |
-
RCRTCLocalAudioStats类说明:RCRTCLocalAudioStats类属性类型 说明 CodecRCRTCAudioCodecTypePCMU: 0
OPUS: 1Bitrateint码率,单位:kbps Volumeint音量 0~100 PackageLostRatedouble丢包率: 0~100 Rttint往返延时,单位:ms
OnLocalVideoStats
OnLocalVideoStats 回调方法通过 RCRTCLocalVideoStats 对象上报网络状态数据。
| 回调参数 | 回调类型 | 说明 |
|---|---|---|
stats | RCRTCLocalVideoStats | 本地饮品状态信息的输出,默认每秒输出一次 |
-
RCRTCLocalVideoStats类说明:RCRTCLocalVideoStats类属性类型 说明 Tinybool是否是小流 CodecRCRTCVideoCodecTypeH264: 0,暂无其他选项 Bitrateint码率,单位:kbps Fpsint帧率 Widthint视频帧宽度 Heightint视频帧高度 PackageLostRatedouble丢包率: 0~100 Rttint往返延时,单位:ms
OnRemoteAudioStats
OnRemoteAudioStats 回调方法通过 RCRTCRemoteAudioStats 对象上报网络状态数据。
| 回调参数 | 回调类型 | 说明 |
|---|---|---|
userId | string | 远端用户 ID |
stats | RCRTCRemoteAudioStats | 本地饮品状态信息的输出,默认每秒输出一次 |
-
RCRTCRemoteAudioStats类说明:RCRTCRemoteAudioStats类属性类型 说明 CodecRCRTCAudioCodecTypePCMU: 0
OPUS: 1Bitrateint码率,单位:kbps Volumeint音量 0~100 PackageLostRatedouble丢包率: 0~100 Rttint往返延时,单位:ms
OnRemoteVideoStats
OnRemoteVideoStats 回调方法通过 RCRTCRemoteVideoStats 对象上报网络状态数据。
| 回调参数 | 回调类型 | 说明 |
|---|---|---|
userId | string | 远端用户 ID |
stats | RCRTCRemoteVideoStats | 本地饮品状态信息的输出,默认每秒输出一次 |
-
RCRTCRemoteVideoStats类说明:RCRTCRemoteVideoStats类属性类型 说明 CodecRCRTCVideoCodecTypeH264: 0,暂无其他选项 Bitrateint码率,单位:kbps Fpsint帧率 Widthint视频帧宽度 Heightint视频帧高度 PackageLostRatedouble丢包率: 0~100 Rttint往返延时,单位:ms
OnLiveMixAudioStats
OnLiveMixAudioStats 回调方法通过 RCRTCRemoteAudioStats 对象上报网络状态数据。
| 回调参数 | 回调类型 | 说明 |
|---|---|---|
stats | RCRTCRemoteAudioStats | 本地饮品状态信息的输出,默认每秒输出一次 |
-
RCRTCRemoteAudioStats类说明:RCRTCRemoteAudioStats类属性类型 说明 CodecRCRTCAudioCodecTypePCMU: 0
OPUS: 1Bitrateint码率,单位:kbps Volumeint音量 0~100 PackageLostRatedouble丢包率: 0~100 Rttint往返延时,单位:ms
OnLiveMixVideoStats
OnLiveMixVideoStats 回调方法通过 RCRTCRemoteVideoStats 对象上报网络状态数据。
| 回调参数 | 回调类型 | 说明 |
|---|---|---|
stats | RCRTCRemoteVideoStats | 本地饮品状态信息的输出,默认每秒输出一次 |
-
RCRTCRemoteAudioStats类说明:RCRTCRemoteVideoStats类属性类型 说明 CodecRCRTCVideoCodecTypeH264: 0,暂无其他选项 Bitrateint码率,单位:kbps Fpsint帧率 Widthint视频帧宽度 Heightint视频帧高度 PackageLostRatedouble丢包率: 0~100 Rttint往返延时,单位:ms -
代码示例:
C #class RTCStatsListener : RCRTCStatsListener {
public void OnNetworkStats(RCRTCNetworkStats stats)
{
// stats: 网络状态
}
public void OnLocalAudioStats(RCRTCLocalAudioStats stats)
{
// stats: 本地音频发送状态
}
public void OnLocalVideoStats(RCRTCLocalVideoStats stats)
{
// stats: 本地视频发送状态
}
public void OnRemoteAudioStats(String userId, RCRTCRemoteAudioStats stats)
{
// userId: 远端用户 ID
// stats: 远端音频接收状态
}
public void OnRemoteVideoStats(String userId, RCRTCRemoteVideoStats stats)
{
// userId: 远端用户 ID
// stats: 远端视频接收状态
}
public void OnLiveMixAudioStats(RCRTCRemoteAudioStats stats)
{
// stats: 直播音频接收状态
}
public void OnLiveMixVideoStats(RCRTCRemoteVideoStats stats)
{
// stats: 直播视频接收状态
}
public void OnLocalCustomAudioStats(String tag, RCRTCLocalAudioStats stats)
{
// 暂不支持
// tag: 自定义音频标签
// stats: 自定义音频发送状态
}
public void OnLocalCustomAudioStats(String tag, RCRTCLocalVideoStats stats)
{
// 暂不支持
// tag: 自定义视频标签
// stats: 自定义视频发送状态
}
public void OnRemoteCustomAudioStats(String userId, String tag, RCRTCRemoteAudioStats stats)
{
// 暂不支持
// userId: 远端用户 ID
// tag: 自定义音频标签
// stats: 自定义音频接收状态
}
public void OnRemoteCustomVideoStats(String userId, String tag, RCRTCRemoteVideoStats stats)
{
// 暂不支持
// userId: 远端用户 ID
// tag: 自定义音频标签
// stats: 自定义视频接收状态
}
}
Engine.SetStatsListener(new RTCStatsListener());