RemoteAudioStats

Obtains audio statistics of remote users.

public static class RemoteAudioStats {
    public int uid;
    public int quality;
    public int networkTransportDelay;
    public int jitterBufferDelay;
    public int audioLossRate;
    public int numChannels;
    public int receivedSampleRate;
    public int receivedBitrate;
    public int totalFrozenTime;
    public int frozenRate;
    public int mosValue;
    public int frozenRateByCustomPlcCount;
    public int plcCount;
    public int frozenCntByCustom;
    public int frozenTimeByCustom;
    public long totalActiveTime;
    public long publishDuration;
    public int qoeQuality;
    public int qualityChangedReason;
    public int rxAudioBytes;
    public int e2eDelay;
  }

Used to report audio statistics after the remote user joins the channel.

Properties

uid
User ID of the remote user.
quality
Quality of the audio stream sent by the remote user.
  • 0: Unknown quality.
  • 1: Excellent.
  • 2: Good network with slightly lower bitrate than excellent.
  • 3: Slightly impaired communication.
  • 4: Communication is not smooth.
  • 5: Difficult communication.
  • 6: Network disconnected, unable to communicate.
  • 8: Last-mile network probe in progress.
networkTransportDelay
Network transport delay (ms) from sender to receiver.
jitterBufferDelay
Network delay (ms) from audio receiver to jitter buffer.
Note: This parameter is invalid when the receiver is an audience member and audienceLatencyLevel in ClientRoleOptions is set to 1.
audioLossRate
Audio frame loss rate (%) of the remote audio stream during the reporting period.
numChannels
Number of audio channels.
receivedSampleRate
Sample rate of the received audio stream during the reporting period.
receivedBitrate
Average bitrate (Kbps) of the received audio stream during the reporting period.
totalFrozenTime
Total duration (ms) of audio freezes after the remote user joins the channel. During a call, an audio freeze is defined when the audio frame loss rate reaches 4%.
frozenRate
Percentage (%) of total freeze time over available audio time. Audio is considered available when the remote user joins the channel, continues sending audio streams, and the audio module is not disabled.
mosValue
Quality of the remote audio stream during the reporting period, based on Agora's real-time audio MOS (Mean Opinion Score) evaluation method. Value range: [0, 500], divide by 100 to get MOS score between 0 and 5. Higher values indicate better quality. MOS score and subjective listening experience:
  • > 4: Excellent quality, clear and smooth.
  • 3.5 to 4: Good quality, slightly perceptible damage but clear.
  • 3 to 3.5: Fair, occasional stuttering, requires attention to listen.
  • 2.5 to 3: Poor, intermittent audio, hard to understand.
  • 2 to 2.5: Very poor, occasional noise and continuous frame loss, difficult communication.
  • < 2: Extremely poor, continuous noise, heavy frame loss, communication nearly impossible.
frozenRateByCustomPlcCount
A freeze is defined when N consecutive audio packet loss concealments (PLC) occur. Freeze count = (n_plc - n) / m.
plcCount
Number of audio packet loss concealments (PLC).
totalActiveTime
Total active time (ms) from the start of the call to the remote user callback. Active time refers to the cumulative time the remote user is not muted.
publishDuration
Total duration (ms) of the remote audio stream.
qoeQuality
Quality of Experience (QoE) when the local user receives the remote audio stream.
  • 0: Good experience.
  • 1: Poor experience.
qualityChangedReason
Reason for poor experience when the local user receives the remote audio stream.
  • 0: None, good experience.
  • 1: Poor network quality of the remote user.
  • 2: Poor network quality of the local user.
  • 4: Poor signal of local Wi-Fi or cellular network.
  • 8: Simultaneous use of Wi-Fi and Bluetooth on the local device causes signal interference, affecting audio transmission quality.
rxAudioBytes
Total bytes of audio received before network processing (bytes), cumulative value.
e2eDelay
End-to-end audio delay (ms), from the remote user's audio capture to the local user's audio playback.