Agora RTC Objective-C API Reference Refactor

Properties
AgoraRtcRemoteAudioStats Class Reference

Inherits <NSObject>.

## Properties
NSUInteger | uid
NSUInteger | quality
NSUInteger | networkTransportDelay
NSUInteger | jitterBufferDelay
NSUInteger | audioLossRate
NSUInteger | numChannels
NSUInteger | receivedSampleRate
NSUInteger | receivedBitrate
NSUInteger | totalFrozenTime
NSUInteger | totalActiveTime
NSInteger | publishDuration
NSUInteger | frozenRate
NSUInteger | mosValue
NSUInteger | frozenRateByCustomPlcCount
NSUInteger | plcCount
NSUInteger | frozenCntByCustom
NSUInteger | frozenTimeByCustom
AgoraExperienceQuality | qoeQuality
AgoraExperiencePoorReason | qualityChangedReason
NSUInteger | rxAudioBytes
NSInteger | e2eDelay

## Property Documentation

## ◆ uid

- (NSUInteger) uid
| read write nonatomic assign

The user ID of the remote user.

## ◆ quality

- (NSUInteger) quality
| read write nonatomic assign

The quality of the audio stream sent by the user. See `AgoraNetworkQuality`.

## ◆ networkTransportDelay

- (NSUInteger) networkTransportDelay
| read write nonatomic assign

The network delay (ms) from the sender to the receiver.

## ◆ jitterBufferDelay

- (NSUInteger) jitterBufferDelay
| read write nonatomic assign

The network delay (ms) from the audio receiver to the jitter buffer.

Note
  When the receiving end is an audience member and `audienceLatencyLevel` of `AgoraClientRoleOptions` is 1, this parameter does not take effect.

## ◆ audioLossRate

- (NSUInteger) audioLossRate
| read write nonatomic assign

The frame loss rate (%) of the remote audio stream in the reported interval.

## ◆ numChannels

- (NSUInteger) numChannels
| read write nonatomic assign

The number of audio channels.

## ◆ receivedSampleRate

- (NSUInteger) receivedSampleRate
| read write nonatomic assign

The sampling rate of the received audio stream in the reported interval.

## ◆ receivedBitrate

- (NSUInteger) receivedBitrate
| read write nonatomic assign

The average bitrate (Kbps) of the received audio stream in the reported interval.

## ◆ totalFrozenTime

- (NSUInteger) totalFrozenTime
| read write nonatomic assign

The total freeze time (ms) of the remote audio stream after the remote user joins the channel. In a session, audio freeze occurs when the audio frame loss rate reaches 4%.

## ◆ totalActiveTime

- (NSUInteger) totalActiveTime
| read write nonatomic assign

The total active time (ms) between the start of the audio call and the callback of the remote user. The active time refers to the total duration of the remote user without the mute state.

## ◆ publishDuration

- (NSInteger) publishDuration
| read write nonatomic assign

The total duration (ms) of the remote audio stream.

## ◆ frozenRate

- (NSUInteger) frozenRate
| read write nonatomic assign

The total audio freeze time as a percentage (%) of the total time when the audio is available. The audio is considered available when the remote user neither stops sending the audio stream nor disables the audio module after joining the channel.

## ◆ mosValue

- (NSUInteger) mosValue
| read write nonatomic assign

The quality of the remote audio stream in the reported interval. The quality is determined by the Agora real-time audio MOS (Mean Opinion Score) measurement method. The return value range is [0, 500]. Dividing the return value by 100 gets the MOS score, which ranges from 0 to 5. The higher the score, the better the audio quality. The subjective perception of audio quality corresponding to the Agora real-time audio MOS scores is as follows:

MOS score | Perception of audio quality
--- | ---
Greater than 4 | Excellent. The audio sounds clear and smooth.
From 3.5 to 4 | Good. The audio has some perceptible impairment but still sounds clear.
From 3 to 3.5 | Fair. The audio freezes occasionally and requires attentive listening.
From 2.5 to 3 | Poor. The audio sounds choppy and requires considerable effort to understand.
From 2 to 2.5 | Bad. The audio has occasional noise. Consecutive audio dropouts occur, resulting in some information loss. The users can communicate only with difficulty.
Less than 2 | Very bad. The audio has persistent noise. Consecutive audio dropouts are frequent, resulting in severe information loss. Communication is nearly impossible.

## ◆ frozenRateByCustomPlcCount

- (NSUInteger) frozenRateByCustomPlcCount
| read write nonatomic assign

If the packet loss concealment (PLC) occurs for N consecutive times, freeze is considered as PLC occurring for M consecutive times. freeze cnt = (n_plc - n) / m

## ◆ plcCount

- (NSUInteger) plcCount
| read write nonatomic assign

The number of audio packet loss concealment

## ◆ frozenCntByCustom

- (NSUInteger) frozenCntByCustom
| read write nonatomic assign

@technical preview The number of times the remote audio stream has experienced freezing.

## ◆ frozenTimeByCustom

- (NSUInteger) frozenTimeByCustom
| read write nonatomic assign

@technical preview The total duration (ms) that the remote audio stream has been in a frozen state.

## ◆ qoeQuality

- (AgoraExperienceQuality) qoeQuality
| read write nonatomic assign

The Quality of Experience (QoE) of the local user when receiving a remote audio stream. See `AgoraExperienceQuality`.

## ◆ qualityChangedReason

- (AgoraExperiencePoorReason) qualityChangedReason
| read write nonatomic assign

Reasons why the QoE of the local user when receiving a remote audio stream is poor. See `AgoraExperiencePoorReason`.

## ◆ rxAudioBytes

- (NSUInteger) rxAudioBytes
| read write nonatomic assign

Total number of audio bytes received (bytes) before network countermeasures, represented by an aggregate value.

## ◆ e2eDelay

- (NSInteger) e2eDelay
| read write nonatomic assign

End-to-end audio delay (in milliseconds), which refers to the time from when the audio is captured by the remote user to when it is played by the local user.