\hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats}{}\doxysection{io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Remote\+Audio\+Stats Class Reference}
\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats}\index{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}}
\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a1c8b82ccc93152913db56d0d681b1f43}{uid}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a0590d15f623df42c606f098e1822fe9f}{quality}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a914ff52103890b131b585e402c9b2893}{network\+Transport\+Delay}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a3256f201b1e109268e7b1957894a5bc8}{jitter\+Buffer\+Delay}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a357c6c61039a5546531c72a85336fc26}{audio\+Loss\+Rate}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_afab7d9ec77d6f7f66f638f6d8425d8c4}{num\+Channels}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_ae23636b0987b06208077acb8d784741e}{received\+Sample\+Rate}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a801f86c4f532dea1dfa2464defadba01}{received\+Bitrate}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a5e47f95b54743e0dcf4b153942e19ab9}{total\+Frozen\+Time}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_aef13884f9d0b62ecbc2b87e9b679eb9e}{frozen\+Rate}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a7fb66359bb50a5cab6733e439b86070b}{mos\+Value}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a476ab5eb3919134b625e04abc35a42e2}{frozen\+Rate\+By\+Custom\+Plc\+Count}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_acff26c45a0b1502f18ed84edd6d7cdda}{plc\+Count}}
\item 
long \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a71b211cfd6eb71490d5ea315f607ba46}{total\+Active\+Time}}
\item 
long \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_aaa84315f15c1f9cbf76f598e7098fa40}{publish\+Duration}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_ae86788f1b183f6081396969668f35c82}{qoe\+Quality}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_aebabd4942a56aac6e527113953b00810}{quality\+Changed\+Reason}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a64aa732fe1c243fc25d76ba828a7709a}{rx\+Audio\+Bytes}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a589eb4d87dd768d40610f97e674dcaa6}{e2e\+Delay}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Statistics of the remote audio. 

\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a1c8b82ccc93152913db56d0d681b1f43}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a1c8b82ccc93152913db56d0d681b1f43}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}!uid@{uid}}
\index{uid@{uid}!io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{uid}{uid}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Remote\+Audio\+Stats.\+uid}

ID of the user sending the audio streams. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a0590d15f623df42c606f098e1822fe9f}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a0590d15f623df42c606f098e1822fe9f}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}!quality@{quality}}
\index{quality@{quality}!io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{quality}{quality}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Remote\+Audio\+Stats.\+quality}

The receiving audio quality\+:
\begin{DoxyItemize}
\item {\ttfamily Q\+U\+A\+L\+I\+T\+Y\+\_\+\+U\+N\+K\+N\+O\+W\+N(0)}\+: The quality is unknown.
\item {\ttfamily Q\+U\+A\+L\+I\+T\+Y\+\_\+\+E\+X\+C\+E\+L\+L\+E\+N\+T(1)}\+: The quality is excellent.
\item {\ttfamily Q\+U\+A\+L\+I\+T\+Y\+\_\+\+G\+O\+OD Q\+U\+A\+L\+I\+T\+Y\+\_\+\+G\+O\+O\+D(2)}\+: The quality is quite good, but the bitrate may be slightly lower than excellent.
\item {\ttfamily Q\+U\+A\+L\+I\+T\+Y\+\_\+\+P\+O\+O\+R(3)}\+: Users can feel the communication slightly impaired.
\item {\ttfamily Q\+U\+A\+L\+I\+T\+Y\+\_\+\+B\+A\+D(4)}\+: Users can communicate not very smoothly.
\item {\ttfamily Q\+U\+A\+L\+I\+T\+Y\+\_\+\+V\+B\+A\+D(5)}\+: The quality is so bad that users can barely communicate.
\item {\ttfamily Q\+U\+A\+L\+I\+T\+Y\+\_\+\+D\+O\+W\+N(6)}\+: The network is disconnected and users cannot communicate at all. 
\end{DoxyItemize}\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a914ff52103890b131b585e402c9b2893}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a914ff52103890b131b585e402c9b2893}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}!networkTransportDelay@{networkTransportDelay}}
\index{networkTransportDelay@{networkTransportDelay}!io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{networkTransportDelay}{networkTransportDelay}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Remote\+Audio\+Stats.\+network\+Transport\+Delay}

The network delay from the sender to the receiver. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a3256f201b1e109268e7b1957894a5bc8}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a3256f201b1e109268e7b1957894a5bc8}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}!jitterBufferDelay@{jitterBufferDelay}}
\index{jitterBufferDelay@{jitterBufferDelay}!io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{jitterBufferDelay}{jitterBufferDelay}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Remote\+Audio\+Stats.\+jitter\+Buffer\+Delay}

The jitter buffer delay at the receiver. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a357c6c61039a5546531c72a85336fc26}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a357c6c61039a5546531c72a85336fc26}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}!audioLossRate@{audioLossRate}}
\index{audioLossRate@{audioLossRate}!io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{audioLossRate}{audioLossRate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Remote\+Audio\+Stats.\+audio\+Loss\+Rate}

The packet loss rate in the reported interval. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_afab7d9ec77d6f7f66f638f6d8425d8c4}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_afab7d9ec77d6f7f66f638f6d8425d8c4}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}!numChannels@{numChannels}}
\index{numChannels@{numChannels}!io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{numChannels}{numChannels}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Remote\+Audio\+Stats.\+num\+Channels}

The number of channels. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_ae23636b0987b06208077acb8d784741e}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_ae23636b0987b06208077acb8d784741e}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}!receivedSampleRate@{receivedSampleRate}}
\index{receivedSampleRate@{receivedSampleRate}!io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{receivedSampleRate}{receivedSampleRate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Remote\+Audio\+Stats.\+received\+Sample\+Rate}

The sample rate (Hz) of the received audio stream, represented by an instantaneous value. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a801f86c4f532dea1dfa2464defadba01}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a801f86c4f532dea1dfa2464defadba01}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}!receivedBitrate@{receivedBitrate}}
\index{receivedBitrate@{receivedBitrate}!io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{receivedBitrate}{receivedBitrate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Remote\+Audio\+Stats.\+received\+Bitrate}

The bitrate (Kbps) of the received audio stream, represented by an instantaneous value. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a5e47f95b54743e0dcf4b153942e19ab9}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a5e47f95b54743e0dcf4b153942e19ab9}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}!totalFrozenTime@{totalFrozenTime}}
\index{totalFrozenTime@{totalFrozenTime}!io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{totalFrozenTime}{totalFrozenTime}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+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\% within two seconds. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_aef13884f9d0b62ecbc2b87e9b679eb9e}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_aef13884f9d0b62ecbc2b87e9b679eb9e}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}!frozenRate@{frozenRate}}
\index{frozenRate@{frozenRate}!io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{frozenRate}{frozenRate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Remote\+Audio\+Stats.\+frozen\+Rate}

The total audio freeze time as a percentage (\%) of the total time when the audio is available. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a7fb66359bb50a5cab6733e439b86070b}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a7fb66359bb50a5cab6733e439b86070b}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}!mosValue@{mosValue}}
\index{mosValue@{mosValue}!io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{mosValue}{mosValue}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+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.

The subjective perception of audio quality corresponding to the Agora real-\/time audio M\+OS scores is as follows\+:

$\vert$ M\+OS score $\vert$ Perception of audio quality $\vert$ $\vert$-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/---$\vert$-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/---$\vert$ $\vert$ Greater than 4 $\vert$ Excellent. The audio sounds clear and smooth. $\vert$ $\vert$ From 3.\+5 to 4 $\vert$ Good. The audio has some perceptible impairment, but still sounds clear. $\vert$ $\vert$ From 3 to 3.\+5 $\vert$ Fair. The audio freezes occasionally and requires attentive listening. $\vert$ $\vert$ From 2.\+5 to 3 $\vert$ Poor. The audio sounds choppy and requires considerable effort to understand. $\vert$ $\vert$ From 2 to 2.\+5 $\vert$ Bad. The audio has occasional noise. Consecutive audio dropouts occur, resulting in some information loss. The users can communicate only with difficulty. $\vert$ $\vert$ Less than 2 $\vert$ Very bad. The audio has persistent noise. Consecutive audio dropouts are frequent, resulting in severe information loss. Communication is nearly impossible. $\vert$ \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a476ab5eb3919134b625e04abc35a42e2}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a476ab5eb3919134b625e04abc35a42e2}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}!frozenRateByCustomPlcCount@{frozenRateByCustomPlcCount}}
\index{frozenRateByCustomPlcCount@{frozenRateByCustomPlcCount}!io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{frozenRateByCustomPlcCount}{frozenRateByCustomPlcCount}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+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{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_acff26c45a0b1502f18ed84edd6d7cdda}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_acff26c45a0b1502f18ed84edd6d7cdda}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}!plcCount@{plcCount}}
\index{plcCount@{plcCount}!io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{plcCount}{plcCount}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Remote\+Audio\+Stats.\+plc\+Count}

The number of audio packet loss concealment \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a71b211cfd6eb71490d5ea315f607ba46}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a71b211cfd6eb71490d5ea315f607ba46}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}!totalActiveTime@{totalActiveTime}}
\index{totalActiveTime@{totalActiveTime}!io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{totalActiveTime}{totalActiveTime}}
{\footnotesize\ttfamily long io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+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{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_aaa84315f15c1f9cbf76f598e7098fa40}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_aaa84315f15c1f9cbf76f598e7098fa40}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}!publishDuration@{publishDuration}}
\index{publishDuration@{publishDuration}!io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{publishDuration}{publishDuration}}
{\footnotesize\ttfamily long io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Remote\+Audio\+Stats.\+publish\+Duration}

The total publish duration (ms) of the remote audio stream. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_ae86788f1b183f6081396969668f35c82}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_ae86788f1b183f6081396969668f35c82}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}!qoeQuality@{qoeQuality}}
\index{qoeQuality@{qoeQuality}!io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{qoeQuality}{qoeQuality}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Remote\+Audio\+Stats.\+qoe\+Quality}

\mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_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.


\begin{DoxyItemize}
\item \mbox{\hyperlink{}{E\+X\+P\+E\+R\+I\+E\+N\+C\+E\+\_\+\+Q\+U\+A\+L\+I\+T\+Y\+\_\+\+G\+O\+O\+D(0)}}
\item \mbox{\hyperlink{}{E\+X\+P\+E\+R\+I\+E\+N\+C\+E\+\_\+\+Q\+U\+A\+L\+I\+T\+Y\+\_\+\+B\+A\+D(1)}} 
\end{DoxyItemize}\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_aebabd4942a56aac6e527113953b00810}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_aebabd4942a56aac6e527113953b00810}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}!qualityChangedReason@{qualityChangedReason}}
\index{qualityChangedReason@{qualityChangedReason}!io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{qualityChangedReason}{qualityChangedReason}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+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{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a64aa732fe1c243fc25d76ba828a7709a}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a64aa732fe1c243fc25d76ba828a7709a}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}!rxAudioBytes@{rxAudioBytes}}
\index{rxAudioBytes@{rxAudioBytes}!io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{rxAudioBytes}{rxAudioBytes}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Remote\+Audio\+Stats.\+rx\+Audio\+Bytes}

Total number of audio bytes received (bytes) before network countermeasures, represented by an aggregate value. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a589eb4d87dd768d40610f97e674dcaa6}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_remote_audio_stats_a589eb4d87dd768d40610f97e674dcaa6}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}!e2eDelay@{e2eDelay}}
\index{e2eDelay@{e2eDelay}!io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats@{io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats}}
\doxysubsubsection{\texorpdfstring{e2eDelay}{e2eDelay}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Remote\+Audio\+Stats.\+e2e\+Delay}

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