RemoteAudioStats
Describes the audio statistics of a remote user.
struct RemoteAudioStats
{
uid_t uid;
int quality;
int networkTransportDelay;
int jitterBufferDelay;
int audioLossRate;
int numChannels;
int receivedSampleRate;
int receivedBitrate;
int totalFrozenTime;
int frozenRate;
int mosValue;
uint32_t frozenRateByCustomPlcCount;
uint32_t plcCount;
uint32_t frozenCntByCustom;
uint32_t frozenTimeByCustom;
int totalActiveTime;
int publishDuration;
int qoeQuality;
int qualityChangedReason;
unsigned int rxAudioBytes;
int e2eDelay;
};
Properties
- uid
- The user ID of the remote user.
- quality
- Audio stream quality. See QUALITY_TYPE.
- networkTransportDelay
- Network transport delay from sender to receiver (ms).
- jitterBufferDelay
- Network delay from the audio receiver to the jitter buffer (ms).
Note: This parameter is not effective when the receiver is an audience member and
audienceLatencyLevelin ClientRoleOptions is set to 1. - audioLossRate
- Audio frame loss rate (%) of the remote stream during the reporting interval.
- numChannels
- Number of audio channels.
- receivedSampleRate
- Sampling rate of the received audio stream during the reporting interval.
- receivedBitrate
- Average bitrate (Kbps) of the received audio stream during the reporting interval.
- totalFrozenTime
- Total duration (ms) of audio freeze after the remote user joins the channel. Audio is considered frozen when the audio frame loss rate reaches 4%.
- frozenRate
- Percentage (%) of total audio freeze duration relative to the total available time of the audio. Audio is considered available if the remote user neither stops sending audio nor disables the audio module after joining the channel.
- mosValue
- Audio quality of the remote stream during the reporting interval, measured by Agora’s real-time audio MOS (Mean Opinion Score) algorithm. The value ranges from [0, 500], which corresponds to a MOS score from 0 to 5 when divided by 100. Higher scores indicate better audio quality. Subjective quality perception based on MOS:
- > 4: Excellent audio quality, clear and smooth.
- 3.5–4: Good audio quality, occasional artifacts but still clear.
- 3–3.5: Fair audio quality, occasional stutters, requires attention to understand.
- 2.5–3: Poor audio quality, frequent stutters, hard to follow.
- 2–2.5: Very poor audio quality, occasional noise, some semantic loss, hard to communicate.
- < 2: Extremely poor audio quality, frequent noise, significant semantic loss, communication impossible.
- frozenRateByCustomPlcCount
- A freeze is considered to occur when packet loss concealment (PLC) happens N times consecutively; freeze count = (n_plc - n) / m.
- plcCount
- Number of times audio packet loss concealment (PLC) occurred.
- totalActiveTime
- Total active time (ms) from the start of the call until the remote user callback. Active time refers to the total 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. See EXPERIENCE_QUALITY_TYPE.
- qualityChangedReason
- Reason for poor QoE when the local user receives the remote audio stream. See EXPERIENCE_POOR_REASON.
- rxAudioBytes
- Total number of received audio bytes (bytes), including FEC bytes, represented as an aggregate value.
- e2eDelay
- End-to-end audio delay (ms), from the time the remote user captures the audio to when the local user plays it.