RemoteAudioStats

Audio statistics of a remote user.

public class RemoteAudioStats
    {
        public RemoteAudioStats()
        {
            uid = 0;
            quality = 0;
            networkTransportDelay = 0;
            jitterBufferDelay = 0;
            audioLossRate = 0;
            numChannels = 0;
            receivedSampleRate = 0;
            receivedBitrate = 0;
            totalFrozenTime = 0;
            frozenRate = 0;
            mosValue = 0;
            totalActiveTime = 0;
            publishDuration = 0;
            qoeQuality = 0;
            qualityChangedReason = 0;
            public int e2eDelay;
        }

        public RemoteAudioStats(uint uid, int quality, int networkTransportDelay, int jitterBufferDelay,
            int audioLossRate, int numChannels, int receivedSampleRate, int receivedBitrate, int totalFrozenTime,
            int frozenRate, int mosValue, int totalActiveTime, int publishDuration, int qoeQuality, int qualityChangedReason)
        {
            this.uid = uid;
            this.quality = quality;
            this.networkTransportDelay = networkTransportDelay;
            this.jitterBufferDelay = jitterBufferDelay;
            this.audioLossRate = audioLossRate;
            this.numChannels = numChannels;
            this.receivedSampleRate = receivedSampleRate;
            this.receivedBitrate = receivedBitrate;
            this.totalFrozenTime = totalFrozenTime;
            this.frozenRate = frozenRate;
            this.mosValue = mosValue;
            this.totalActiveTime = totalActiveTime;
            this.publishDuration = publishDuration;
            this.qoeQuality = qoeQuality;
            this.qualityChangedReason = qualityChangedReason;
        }

        public uint uid { set; get; }
        public int quality { set; get; }
        public int networkTransportDelay { set; get; }
        public int jitterBufferDelay { set; get; }
        public int audioLossRate { set; get; }
        public int numChannels { set; get; }
        public int receivedSampleRate { set; get; }
        public int receivedBitrate { set; get; }
        public int totalFrozenTime { set; get; }
        public int frozenRate { set; get; }
        public int mosValue { set; get; }
        public int totalActiveTime { set; get; }
        public int publishDuration { set; get; }
        public int qoeQuality { set; get; }
        public int qualityChangedReason { set; get; }
    };

Properties

uid
User ID of the remote user.
quality
Audio stream quality sent by the remote user. See QUALITY_TYPE.
networkTransportDelay
Network delay from the audio sender to the receiver (ms).
jitterBufferDelay
Network delay from the receiver to the jitter buffer (ms).
Note: This parameter is not valid when the receiver is an audience member and ClientRoleOptions's audienceLatencyLevel is 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 remote audio stream during the reporting interval.
receivedBitrate
Average bitrate (Kbps) of the received remote audio stream during the reporting interval.
totalFrozenTime
Total duration (ms) of audio freezes after the remote user joins the channel. An audio freeze is defined as a frame loss rate of 4% or higher during a call.
frozenRate
Percentage (%) of total freeze time relative to the total duration of valid audio. Valid audio duration refers to the time after the remote user joins the channel during which audio is neither stopped nor disabled.
totalActiveTime
Valid duration (ms) from the start of the audio call to the current callback. Valid duration excludes the total time the remote user was muted.
publishDuration
Total publishing duration (ms) of the remote audio stream.
qoeQuality
Subjective quality of experience perceived by the local user when receiving remote audio. See EXPERIENCE_QUALITY_TYPE.
qualityChangedReason
Reason for poor subjective experience quality when receiving remote audio. See EXPERIENCE_POOR_REASON.
mosValue
During the reporting interval, the quality score of the received remote audio stream as assessed by Agora’s real-time audio MOS (Mean Opinion Score) method. The return value ranges from [0, 500]. Divide the value by 100 to get the MOS score, which ranges from 0 to 5. The higher the score, the better the audio quality.
MOS Score Audio Quality
Greater than 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, not very smooth, requires some attention to understand.
2.5 - 3 Poor audio quality, frequent stutters, requires concentration to understand.
2 - 2.5 Very poor audio quality, occasional noise, partial semantic loss, difficult to communicate.
Less than 2 Extremely poor audio quality, frequent noise, significant semantic loss, communication impossible.
e2eDelay
End-to-end audio delay (ms), i.e., the total time from when the remote user captures the audio to when the local user starts playing it.