跳到主要内容

通话数据统计

SDK 通过通话状态数据监听类 RCRTCStatsListener 提供详细数据,上层依据此数据可进行提示,状态判断等处理。

您可以通过 RCRTCStatsListener 监听类提供的 OnNetworkStatsOnLocalAudioStatsOnLocalVideoStatsOnRemoteAudioStatsOnRemoteVideoStatsOnLiveMixAudioStatsOnLiveMixVideoStats 获取 SDK 上报的音频统计数据,例如音频流相关用户数据、音频流质量数据、网络状态与质量数据等。

注册通话状态数据监听器

通过 RCRTCEngine.SetStatsListener 方法注册取消状态监听。

注册监听器后,上层会收到底层音频库在音频通话过程中上报的通话详细数据。上报频率按照 RCRTCEngineSetup#statusReportInterval 中指定的时间间隔(默认1秒)。

OnNetworkStats

OnNetworkStats 回调方法通过 RCRTCNetworkStats 对象上报网络状态数据。

回调参数回调类型说明
statsRCRTCNetworkStats网络状态信息的输出,默认每秒输出一次
  • RCRTCNetworkStats 类说明:

    RCRTCNetworkStats 类属性类型说明
    TypeRCRTCNetworkTypeUNKNOWN: 未知
    WIFI: 无线网络
    MOBILE: 手机网络
    IpString本端 IP 地址
    SendBitrateint发送码率,单位:kbps
    ReceiveBitratelong接收码率,单位:kbps
    Rttint往返延时,单位:ms

OnLocalAudioStats

OnLocalAudioStats 回调方法通过 RCRTCLocalAudioStats 对象上报网络状态数据。

回调参数回调类型说明
statsRCRTCLocalAudioStats本地饮品状态信息的输出,默认每秒输出一次
  • RCRTCLocalAudioStats 类说明:

    RCRTCLocalAudioStats 类属性类型说明
    CodecRCRTCAudioCodecTypePCMU: 0
    OPUS: 1
    Bitrateint码率,单位:kbps
    Volumeint音量 0~100
    PackageLostRatedouble丢包率: 0~100
    Rttint往返延时,单位:ms

OnLocalVideoStats

OnLocalVideoStats 回调方法通过 RCRTCLocalVideoStats 对象上报网络状态数据。

回调参数回调类型说明
statsRCRTCLocalVideoStats本地饮品状态信息的输出,默认每秒输出一次
  • RCRTCLocalVideoStats 类说明:

    RCRTCLocalVideoStats 类属性类型说明
    Tinybool是否是小流
    CodecRCRTCVideoCodecTypeH264: 0,暂无其他选项
    Bitrateint码率,单位:kbps
    Fpsint帧率
    Widthint视频帧宽度
    Heightint视频帧高度
    PackageLostRatedouble丢包率: 0~100
    Rttint往返延时,单位:ms

OnRemoteAudioStats

OnRemoteAudioStats 回调方法通过 RCRTCRemoteAudioStats 对象上报网络状态数据。

回调参数回调类型说明
userIdstring远端用户 ID
statsRCRTCRemoteAudioStats本地饮品状态信息的输出,默认每秒输出一次
  • RCRTCRemoteAudioStats 类说明:

    RCRTCRemoteAudioStats 类属性类型说明
    CodecRCRTCAudioCodecTypePCMU: 0
    OPUS: 1
    Bitrateint码率,单位:kbps
    Volumeint音量 0~100
    PackageLostRatedouble丢包率: 0~100
    Rttint往返延时,单位:ms

OnRemoteVideoStats

OnRemoteVideoStats 回调方法通过 RCRTCRemoteVideoStats 对象上报网络状态数据。

回调参数回调类型说明
userIdstring远端用户 ID
statsRCRTCRemoteVideoStats本地饮品状态信息的输出,默认每秒输出一次
  • RCRTCRemoteVideoStats 类说明:

    RCRTCRemoteVideoStats 类属性类型说明
    CodecRCRTCVideoCodecTypeH264: 0,暂无其他选项
    Bitrateint码率,单位:kbps
    Fpsint帧率
    Widthint视频帧宽度
    Heightint视频帧高度
    PackageLostRatedouble丢包率: 0~100
    Rttint往返延时,单位:ms

OnLiveMixAudioStats

OnLiveMixAudioStats 回调方法通过 RCRTCRemoteAudioStats 对象上报网络状态数据。

回调参数回调类型说明
statsRCRTCRemoteAudioStats本地饮品状态信息的输出,默认每秒输出一次
  • RCRTCRemoteAudioStats 类说明:

    RCRTCRemoteAudioStats 类属性类型说明
    CodecRCRTCAudioCodecTypePCMU: 0
    OPUS: 1
    Bitrateint码率,单位:kbps
    Volumeint音量 0~100
    PackageLostRatedouble丢包率: 0~100
    Rttint往返延时,单位:ms

OnLiveMixVideoStats

OnLiveMixVideoStats 回调方法通过 RCRTCRemoteVideoStats 对象上报网络状态数据。

回调参数回调类型说明
statsRCRTCRemoteVideoStats本地饮品状态信息的输出,默认每秒输出一次
  • RCRTCRemoteAudioStats 类说明:

    RCRTCRemoteVideoStats 类属性类型说明
    CodecRCRTCVideoCodecTypeH264: 0,暂无其他选项
    Bitrateint码率,单位:kbps
    Fpsint帧率
    Widthint视频帧宽度
    Heightint视频帧高度
    PackageLostRatedouble丢包率: 0~100
    Rttint往返延时,单位:ms
  • 代码示例:

    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());