\hypertarget{structagora_1_1rtc_1_1_remote_audio_stats}{}\doxysection{agora\+::rtc\+::Remote\+Audio\+Stats Struct Reference}
\label{structagora_1_1rtc_1_1_remote_audio_stats}\index{agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}}


{\ttfamily \#include $<$I\+Agora\+Rtc\+Engine.\+h$>$}

\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
uid\+\_\+t \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_stats_ac032e6d3b239a3799ce60dd54f0940f2}{uid}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_stats_ad1414ffd629fe7791193652e2949229c}{quality}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_stats_a1bac569b716949dd82b1d7f6a5e103b2}{network\+Transport\+Delay}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_stats_a3700f3d8d85453fbf1a8539d52e368d6}{jitter\+Buffer\+Delay}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_stats_a15ec731d1d73d1def355c22422e20ec6}{audio\+Loss\+Rate}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_stats_afa603b5fbd1b6897306e65e6b98e5df7}{num\+Channels}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_stats_a6b5584f4a3dd0fde0745dc6d1c891042}{received\+Sample\+Rate}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_stats_ab2a360cb790bf5c0f0fdbb88f2e9c611}{received\+Bitrate}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_stats_ac4f9d239ec0639de2503ceda94ea6d58}{total\+Frozen\+Time}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_stats_aa394c53f72e3c3354d8b0cd44a9c5ae1}{frozen\+Rate}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_stats_ae6a4eca5e9506f296f78cbb989344e1d}{mos\+Value}}
\item 
uint32\+\_\+t \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_stats_a56039c616cf734839457644e436d3cc3}{frozen\+Rate\+By\+Custom\+Plc\+Count}}
\item 
uint32\+\_\+t \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_stats_a968fd260ff340a6d4fad57e220dda1bb}{plc\+Count}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_stats_af767d79a5c4676e3637d8e5089be3978}{total\+Active\+Time}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_stats_a8661aae3340fb6991439bae41b9a7e1f}{publish\+Duration}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_stats_a2613974a161c32644b3922f1aaee0b86}{qoe\+Quality}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_stats_ad925cf54f05e95f7061164744473e3f3}{quality\+Changed\+Reason}}
\item 
unsigned int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_stats_a974330e84867b4e8c2bffdb5475b38c7}{rx\+Audio\+Bytes}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_stats_a710a44dd8c2499d70aeeaba3facf1d30}{e2e\+Delay}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Audio statistics of the remote user. 

\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_audio_stats_ac032e6d3b239a3799ce60dd54f0940f2}\label{structagora_1_1rtc_1_1_remote_audio_stats_ac032e6d3b239a3799ce60dd54f0940f2}} 
\index{agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}!uid@{uid}}
\index{uid@{uid}!agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{uid}{uid}}
{\footnotesize\ttfamily uid\+\_\+t agora\+::rtc\+::\+Remote\+Audio\+Stats\+::uid}

User ID of the remote user sending the audio stream. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_audio_stats_ad1414ffd629fe7791193652e2949229c}\label{structagora_1_1rtc_1_1_remote_audio_stats_ad1414ffd629fe7791193652e2949229c}} 
\index{agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}!quality@{quality}}
\index{quality@{quality}!agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{quality}{quality}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Audio\+Stats\+::quality}

The quality of the remote audio\+: \#\+Q\+U\+A\+L\+I\+T\+Y\+\_\+\+T\+Y\+PE. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_audio_stats_a1bac569b716949dd82b1d7f6a5e103b2}\label{structagora_1_1rtc_1_1_remote_audio_stats_a1bac569b716949dd82b1d7f6a5e103b2}} 
\index{agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}!networkTransportDelay@{networkTransportDelay}}
\index{networkTransportDelay@{networkTransportDelay}!agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{networkTransportDelay}{networkTransportDelay}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Audio\+Stats\+::network\+Transport\+Delay}

The network delay (ms) from the sender to the receiver. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_audio_stats_a3700f3d8d85453fbf1a8539d52e368d6}\label{structagora_1_1rtc_1_1_remote_audio_stats_a3700f3d8d85453fbf1a8539d52e368d6}} 
\index{agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}!jitterBufferDelay@{jitterBufferDelay}}
\index{jitterBufferDelay@{jitterBufferDelay}!agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{jitterBufferDelay}{jitterBufferDelay}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Audio\+Stats\+::jitter\+Buffer\+Delay}

The network delay (ms) from the receiver to the jitter buffer. \begin{DoxyNote}{Note}
When the receiving end is an audience member and {\ttfamily audience\+Latency\+Level} of {\ttfamily \mbox{\hyperlink{structagora_1_1rtc_1_1_client_role_options}{Client\+Role\+Options}}} is 1, this parameter does not take effect. 
\end{DoxyNote}
\mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_audio_stats_a15ec731d1d73d1def355c22422e20ec6}\label{structagora_1_1rtc_1_1_remote_audio_stats_a15ec731d1d73d1def355c22422e20ec6}} 
\index{agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}!audioLossRate@{audioLossRate}}
\index{audioLossRate@{audioLossRate}!agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{audioLossRate}{audioLossRate}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Audio\+Stats\+::audio\+Loss\+Rate}

The audio frame loss rate in the reported interval. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_audio_stats_afa603b5fbd1b6897306e65e6b98e5df7}\label{structagora_1_1rtc_1_1_remote_audio_stats_afa603b5fbd1b6897306e65e6b98e5df7}} 
\index{agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}!numChannels@{numChannels}}
\index{numChannels@{numChannels}!agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{numChannels}{numChannels}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Audio\+Stats\+::num\+Channels}

The number of channels. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_audio_stats_a6b5584f4a3dd0fde0745dc6d1c891042}\label{structagora_1_1rtc_1_1_remote_audio_stats_a6b5584f4a3dd0fde0745dc6d1c891042}} 
\index{agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}!receivedSampleRate@{receivedSampleRate}}
\index{receivedSampleRate@{receivedSampleRate}!agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{receivedSampleRate}{receivedSampleRate}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Audio\+Stats\+::received\+Sample\+Rate}

The sample rate (Hz) of the remote audio stream in the reported interval. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_audio_stats_ab2a360cb790bf5c0f0fdbb88f2e9c611}\label{structagora_1_1rtc_1_1_remote_audio_stats_ab2a360cb790bf5c0f0fdbb88f2e9c611}} 
\index{agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}!receivedBitrate@{receivedBitrate}}
\index{receivedBitrate@{receivedBitrate}!agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{receivedBitrate}{receivedBitrate}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Audio\+Stats\+::received\+Bitrate}

The average bitrate (Kbps) of the remote audio stream in the reported interval. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_audio_stats_ac4f9d239ec0639de2503ceda94ea6d58}\label{structagora_1_1rtc_1_1_remote_audio_stats_ac4f9d239ec0639de2503ceda94ea6d58}} 
\index{agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}!totalFrozenTime@{totalFrozenTime}}
\index{totalFrozenTime@{totalFrozenTime}!agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{totalFrozenTime}{totalFrozenTime}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Audio\+Stats\+::total\+Frozen\+Time}

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\%. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_audio_stats_aa394c53f72e3c3354d8b0cd44a9c5ae1}\label{structagora_1_1rtc_1_1_remote_audio_stats_aa394c53f72e3c3354d8b0cd44a9c5ae1}} 
\index{agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}!frozenRate@{frozenRate}}
\index{frozenRate@{frozenRate}!agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{frozenRate}{frozenRate}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Audio\+Stats\+::frozen\+Rate}

The total audio freeze time as a percentage (\%) of the total time when the audio is available. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_audio_stats_ae6a4eca5e9506f296f78cbb989344e1d}\label{structagora_1_1rtc_1_1_remote_audio_stats_ae6a4eca5e9506f296f78cbb989344e1d}} 
\index{agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}!mosValue@{mosValue}}
\index{mosValue@{mosValue}!agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{mosValue}{mosValue}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Audio\+Stats\+::mos\+Value}

The quality of the remote audio stream as determined by the Agora real-\/time audio M\+OS (Mean Opinion Score) measurement method in the reported interval. The return value ranges from 0 to 500. Dividing the return value by 100 gets the M\+OS score, which ranges from 0 to 5. The higher the score, the better the audio quality.

\tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{2}{|X[-1]}|}
\hline
\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ M\+OS score }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Perception of audio quality  }\\\cline{1-2}
\endfirsthead
\hline
\endfoot
\hline
\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ M\+OS score }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Perception of audio quality  }\\\cline{1-2}
\endhead
Greater than 4 &Excellent. The audio sounds clear and smooth.  \\\cline{1-2}
From 3.\+5 to 4 &Good. The audio has some perceptible impairment, but still sounds clear.  \\\cline{1-2}
From 3 to 3.\+5 &Fair. The audio freezes occasionally and requires attentive listening.  \\\cline{1-2}
From 2.\+5 to 3 &Poor. The audio sounds choppy and requires considerable effort to understand.  \\\cline{1-2}
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.  \\\cline{1-2}
Less than 2 &Very bad. The audio has persistent noise. Consecutive audio dropouts are frequent, resulting in severe information loss. Communication is nearly impossible.  \\\cline{1-2}
\end{longtabu}
\mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_audio_stats_a56039c616cf734839457644e436d3cc3}\label{structagora_1_1rtc_1_1_remote_audio_stats_a56039c616cf734839457644e436d3cc3}} 
\index{agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}!frozenRateByCustomPlcCount@{frozenRateByCustomPlcCount}}
\index{frozenRateByCustomPlcCount@{frozenRateByCustomPlcCount}!agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{frozenRateByCustomPlcCount}{frozenRateByCustomPlcCount}}
{\footnotesize\ttfamily uint32\+\_\+t agora\+::rtc\+::\+Remote\+Audio\+Stats\+::frozen\+Rate\+By\+Custom\+Plc\+Count}

If the packet loss concealment (P\+LC) occurs for N consecutive times, freeze is considered as P\+LC occurring for M consecutive times. freeze cnt = (n\+\_\+plc -\/ n) / m \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_audio_stats_a968fd260ff340a6d4fad57e220dda1bb}\label{structagora_1_1rtc_1_1_remote_audio_stats_a968fd260ff340a6d4fad57e220dda1bb}} 
\index{agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}!plcCount@{plcCount}}
\index{plcCount@{plcCount}!agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{plcCount}{plcCount}}
{\footnotesize\ttfamily uint32\+\_\+t agora\+::rtc\+::\+Remote\+Audio\+Stats\+::plc\+Count}

The number of audio packet loss concealment \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_audio_stats_af767d79a5c4676e3637d8e5089be3978}\label{structagora_1_1rtc_1_1_remote_audio_stats_af767d79a5c4676e3637d8e5089be3978}} 
\index{agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}!totalActiveTime@{totalActiveTime}}
\index{totalActiveTime@{totalActiveTime}!agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{totalActiveTime}{totalActiveTime}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Audio\+Stats\+::total\+Active\+Time}

The total time (ms) when the remote user neither stops sending the audio stream nor disables the audio module after joining the channel. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_audio_stats_a8661aae3340fb6991439bae41b9a7e1f}\label{structagora_1_1rtc_1_1_remote_audio_stats_a8661aae3340fb6991439bae41b9a7e1f}} 
\index{agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}!publishDuration@{publishDuration}}
\index{publishDuration@{publishDuration}!agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{publishDuration}{publishDuration}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Audio\+Stats\+::publish\+Duration}

The total publish duration (ms) of the remote audio stream. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_audio_stats_a2613974a161c32644b3922f1aaee0b86}\label{structagora_1_1rtc_1_1_remote_audio_stats_a2613974a161c32644b3922f1aaee0b86}} 
\index{agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}!qoeQuality@{qoeQuality}}
\index{qoeQuality@{qoeQuality}!agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{qoeQuality}{qoeQuality}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Audio\+Stats\+::qoe\+Quality}

Quality of experience (QoE) of the local user when receiving a remote audio stream. See \#\+E\+X\+P\+E\+R\+I\+E\+N\+C\+E\+\_\+\+Q\+U\+A\+L\+I\+T\+Y\+\_\+\+T\+Y\+PE. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_audio_stats_ad925cf54f05e95f7061164744473e3f3}\label{structagora_1_1rtc_1_1_remote_audio_stats_ad925cf54f05e95f7061164744473e3f3}} 
\index{agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}!qualityChangedReason@{qualityChangedReason}}
\index{qualityChangedReason@{qualityChangedReason}!agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{qualityChangedReason}{qualityChangedReason}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Audio\+Stats\+::quality\+Changed\+Reason}

The reason for poor QoE of the local user when receiving a remote audio stream. See \#\+E\+X\+P\+E\+R\+I\+E\+N\+C\+E\+\_\+\+P\+O\+O\+R\+\_\+\+R\+E\+A\+S\+ON. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_audio_stats_a974330e84867b4e8c2bffdb5475b38c7}\label{structagora_1_1rtc_1_1_remote_audio_stats_a974330e84867b4e8c2bffdb5475b38c7}} 
\index{agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}!rxAudioBytes@{rxAudioBytes}}
\index{rxAudioBytes@{rxAudioBytes}!agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{rxAudioBytes}{rxAudioBytes}}
{\footnotesize\ttfamily unsigned int agora\+::rtc\+::\+Remote\+Audio\+Stats\+::rx\+Audio\+Bytes}

The total number of audio bytes received (bytes), inluding the F\+EC bytes, represented by an aggregate value. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_audio_stats_a710a44dd8c2499d70aeeaba3facf1d30}\label{structagora_1_1rtc_1_1_remote_audio_stats_a710a44dd8c2499d70aeeaba3facf1d30}} 
\index{agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}!e2eDelay@{e2eDelay}}
\index{e2eDelay@{e2eDelay}!agora::rtc::RemoteAudioStats@{agora::rtc::RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{e2eDelay}{e2eDelay}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Audio\+Stats\+::e2e\+Delay}

The end-\/to-\/end delay (ms) from the sender to the receiver. 