RemoteAudioStats
Audio statistics of the remote user.
@JsonSerializable(explicitToJson: true, includeIfNull: false)
class RemoteAudioStats {
const RemoteAudioStats(
{this.uid,
this.quality,
this.networkTransportDelay,
this.jitterBufferDelay,
this.audioLossRate,
this.numChannels,
this.receivedSampleRate,
this.receivedBitrate,
this.totalFrozenTime,
this.frozenRate,
this.mosValue,
this.totalActiveTime,
this.publishDuration,
this.qoeQuality,
this.qualityChangedReason,
this.e2eDelay});
@JsonKey(name: 'uid')
final int? uid;
@JsonKey(name: 'quality')
final int? quality;
@JsonKey(name: 'networkTransportDelay')
final int? networkTransportDelay;
@JsonKey(name: 'jitterBufferDelay')
final int? jitterBufferDelay;
@JsonKey(name: 'audioLossRate')
final int? audioLossRate;
@JsonKey(name: 'numChannels')
final int? numChannels;
@JsonKey(name: 'receivedSampleRate')
final int? receivedSampleRate;
@JsonKey(name: 'receivedBitrate')
final int? receivedBitrate;
@JsonKey(name: 'totalFrozenTime')
final int? totalFrozenTime;
@JsonKey(name: 'frozenRate')
final int? frozenRate;
@JsonKey(name: 'mosValue')
final int? mosValue;
@JsonKey(name: 'totalActiveTime')
final int? totalActiveTime;
@JsonKey(name: 'publishDuration')
final int? publishDuration;
@JsonKey(name: 'qoeQuality')
final int? qoeQuality;
@JsonKey(name: 'qualityChangedReason')
final int? qualityChangedReason;
@JsonKey(name: 'e2eDelay')
final int? e2eDelay;
factory RemoteAudioStats.fromJson(Map<String, dynamic> json) =>
_$RemoteAudioStatsFromJson(json);
Map<String, dynamic> toJson() => _$RemoteAudioStatsToJson(this);
}
Properties
- uid
- The user ID of the remote user.
- quality
- The quality of the audio stream sent by the remote user. See QualityType.
- networkTransportDelay
- Network delay from the audio sender to the 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 audio 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 experienced by the remote user after joining the channel. An audio freeze is counted when the audio frame loss rate exceeds 4%.
- frozenRate
- Percentage (%) of the total freeze duration relative to the total valid audio duration. Valid audio duration refers to the time after the remote user joins the channel during which audio is not stopped or disabled.
- totalActiveTime
- Total valid time (ms) from the start of the audio call to this callback for the remote user. Valid time excludes the total time the remote user was in a muted state.
- publishDuration
- Total publishing duration (ms) of the remote audio stream.
- qoeQuality
- Subjective experience quality of the local user when receiving remote audio.
- qualityChangedReason
- Reason for poor subjective experience quality of the local user when receiving remote audio. See ExperiencePoorReason.
- mosValue
- During the reporting interval, the quality score of the received remote audio stream evaluated by Agora's real-time audio MOS (Mean Opinion Score) method. The return value ranges from [0,500]. Divide the return value by 100 to get the MOS score in the range [0,5], where a higher score indicates better audio quality.
The subjective audio quality corresponding to the Agora real-time audio MOS score is as follows:
MOS Score Audio Quality Greater than 4 Excellent audio quality, clear and smooth. 3.5 - 4 Good audio quality, occasional impairments, but still clear. 3 - 3.5 Fair audio quality, occasional stuttering, not very smooth, requires some effort to understand. 2.5 - 3 Poor audio quality, frequent stuttering, requires focus 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.