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
audienceLatencyLevelin 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.