Skip to main content

Call Statistics

During RTC calls, the underlying RTC library reports detailed call metrics at intervals specified by RCRTCEngineSetup#statsReportInterval (default: 1 second). This data enables UI prompts and status monitoring.

Register listeners via the setStatsListener method in RCRTCEngine.

Detailed Specifications

  • Callback parameters:

    onNetworkStats description:

    ParameterTypeDescription
    statsRCRTCNetworkStatsNetwork status metrics

    onLocalAudioStats description:

    ParameterTypeDescription
    statsRCRTCLocalAudioStatsAudio transmission metrics

    onLocalVideoStats description:

    ParameterTypeDescription
    statsRCRTCLocalVideoStatsVideo transmission metrics

    onLocalCustomVideoStats description:

    ParameterTypeDescription
    tagStringCustom video resource TAG
    statsRCRTCLocalVideoStatsCustom video transmission metrics

    onRemoteAudioStats description:

    In live streaming scenarios, hosts can monitor speaking participants' volume levels. In conference mode, all participants receive speaking indicators.

    ParameterTypeDescription
    roomIdStringRoom ID
    userIdStringRemote user ID
    statsRCRTCRemoteAudioStatsAudio reception quality metrics

    onRemoteVideoStats description:

    ParameterTypeDescription
    userIdStringRemote user ID
    statsRCRTCRemoteVideoStatsVideo reception quality metrics

    onLiveMixAudioStats description:

    ParameterTypeDescription
    statsRCRTCRemoteAudioStatsMixed audio stream reception metrics

    onLiveMixMemberAudioStats description:

    Audience members can monitor hosts' volume levels during live streams.

    ParameterTypeDescription
    userIdStringRemote user ID
    volumeintVolume level

    onLiveMixVideoStats description:

    ParameterTypeDescription
    statsRCRTCRemoteVideoStatsMixed video stream reception metrics

    onRemoteCustomVideoStats description:

    ParameterTypeDescription
    userIdStringRemote user ID
    tagStringCustom video resource TAG
    statsRCRTCRemoteVideoStatsCustom video reception metrics
  • RCRTCNetworkStats

    PropertyTypeDescription
    typeRCRTCNetworkTypeNetwork type (Unknown/WiFi/Cellular)
    ipStringIP address
    sendBitrateintUpload bitrate (kbps)
    receiveBitrateintDownload bitrate (kbps)
    rttintRound-trip delay (ms)
  • RCRTCLocalAudioStats

    PropertyTypeDescription
    codecRCRTCAudioCodecTypeCodec type (PCMU/OPUS)
    bitrateintBitrate (kbps)
    volumeintVolume level
    packageLostRateintPacket loss rate (0-100)
    rttintRound-trip delay (ms)
  • RCRTCLocalVideoStats

    PropertyTypeDescription
    tinyboolStream type (true: thumbnail, false: HD)
    codecRCRTCVideoCodecTypeCodec type (H264)
    bitrateintBitrate (kbps)
    fpsintFrame rate
    widthintVideo width
    heightintVideo height
    packageLostRateintPacket loss rate (0-100)
    rttintRound-trip delay (ms)
  • RCRTCRemoteAudioStats

    PropertyTypeDescription
    codecRCRTCVideoCodecTypeCodec type (H264)
    bitrateintBitrate (kbps)
    volumeintVolume level
    packageLostRateintPacket loss rate (0-100)
    rttintRound-trip delay (ms)
  • RCRTCRemoteVideoStats

    PropertyTypeDescription
    codecRCRTCVideoCodecTypeCodec type (H264)
    bitrateintBitrate (kbps)
    fpsintFrame rate
    widthintVideo width
    heightintVideo height
    packageLostRateintPacket loss rate (0-100)
    rttintRound-trip delay (ms)

Sample Code

class StatsListenerImpl implements RCRTCStatsListener {


void onNetworkStats(RCRTCNetworkStats stats) {
// Network status metrics
}


void onLocalAudioStats(RCRTCLocalAudioStats stats) {
// Audio transmission metrics
}


void onLocalVideoStats(RCRTCLocalVideoStats stats) {
// Video transmission metrics
}


void onLocalCustomAudioStats(String tag, RCRTCLocalAudioStats stats) {
// Currently unused
}


void onLocalCustomVideoStats(String tag, RCRTCLocalVideoStats stats) {
// Custom video transmission metrics
}


void onRemoteAudioStats(String userId, RCRTCRemoteAudioStats stats) {
// Audio reception metrics
}


void onRemoteVideoStats(String userId, RCRTCRemoteVideoStats stats) {
// Video reception metrics
}


void onLiveMixAudioStats(RCRTCRemoteAudioStats stats) {
// Mixed audio stream metrics
}


void onLiveMixVideoStats(RCRTCRemoteVideoStats stats) {
// Mixed video stream metrics
}


void onRemoteCustomAudioStats(String userId, String tag, RCRTCRemoteAudioStats stats) {
// Currently unused
}


void onRemoteCustomVideoStats(String userId, String tag, RCRTCRemoteVideoStats stats) {
// Custom video reception metrics
}

}

/// Register stats listener
engine.setStatsListener(StatsListenerImpl());

/// Remove stats listener
engine.setStatsListener(null);