\hypertarget{classagora_1_1rtc_1_1_i_remote_audio_track}{}\doxysection{agora\+::rtc\+::I\+Remote\+Audio\+Track Class Reference}
\label{classagora_1_1rtc_1_1_i_remote_audio_track}\index{agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}}


{\ttfamily \#include $<$N\+G\+I\+Agora\+Audio\+Track.\+h$>$}

Inheritance diagram for agora\+::rtc\+::I\+Remote\+Audio\+Track\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classagora_1_1rtc_1_1_i_remote_audio_track}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual bool \mbox{\hyperlink{classagora_1_1rtc_1_1_i_remote_audio_track_a7fa3cd504b1fdc3c06e133d358ab04e1}{get\+Statistics}} (\mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_track_stats}{Remote\+Audio\+Track\+Stats}} \&stats)=0
\item 
virtual R\+E\+M\+O\+T\+E\+\_\+\+A\+U\+D\+I\+O\+\_\+\+S\+T\+A\+TE \mbox{\hyperlink{classagora_1_1rtc_1_1_i_remote_audio_track_abcf5b94e335602c43a25ac8e6c479bc5}{get\+State}} ()=0
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_remote_audio_track_ab1eed30058b3e39a6aa6a1c505911c8c}{register\+Media\+Packet\+Receiver}} (\mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_packet_receiver}{I\+Media\+Packet\+Receiver}} $\ast$packet\+Receiver, aosl\+\_\+ref\+\_\+t ares=A\+O\+S\+L\+\_\+\+R\+E\+F\+\_\+\+I\+N\+V\+A\+L\+ID)=0
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_remote_audio_track_a8b22c1b4590029b24aebcfef64d25f5c}{unregister\+Media\+Packet\+Receiver}} (\mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_packet_receiver}{I\+Media\+Packet\+Receiver}} $\ast$packet\+Receiver)=0
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_remote_audio_track_aec06bba1297cb3f9112b1962971599cc}{register\+Audio\+Encoded\+Frame\+Receiver}} (\mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_encoded_frame_receiver}{I\+Audio\+Encoded\+Frame\+Receiver}} $\ast$packet\+Receiver, const \mbox{\hyperlink{structagora_1_1rtc_1_1_audio_enc_frame_recv_params}{Audio\+Enc\+Frame\+Recv\+Params}} \&recv\+Params, aosl\+\_\+ref\+\_\+t ares=A\+O\+S\+L\+\_\+\+R\+E\+F\+\_\+\+I\+N\+V\+A\+L\+ID)=0
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_remote_audio_track_a691dc49d709e561225bf3c4eb9f9e134}{unregister\+Audio\+Encoded\+Frame\+Receiver}} (\mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_encoded_frame_receiver}{I\+Audio\+Encoded\+Frame\+Receiver}} $\ast$packet\+Receiver)=0
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_remote_audio_track_a48b1a041d680e2ee20737301f8a4f49f}{set\+Remote\+Voice\+Position}} (float pan, float gain, aosl\+\_\+ref\+\_\+t ares=A\+O\+S\+L\+\_\+\+R\+E\+F\+\_\+\+I\+N\+V\+A\+L\+ID)=0
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_remote_audio_track_adf89b42d3a80a6504c28284481afb4a7}{adjust\+Decoded\+Audio\+Volume}} (int decoded\+\_\+index, int volume, aosl\+\_\+ref\+\_\+t ares=A\+O\+S\+L\+\_\+\+R\+E\+F\+\_\+\+I\+N\+V\+A\+L\+ID)=0
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_remote_audio_track_a8f7f57cf8365862136b4a693f66663b4}{mute\+Remote\+From\+Timestamp}} (uint32\+\_\+t timestamp)=0
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_remote_audio_track_ae1c94f8700c6fb14765d952dde172d7b}{unmute\+Remote\+From\+Timestamp}} (uint32\+\_\+t timestamp)=0
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_remote_audio_track_ae34b114053b10fa9a93ef9af35c0db77}{adjust\+Audio\+Acceleration}} (int percentage, aosl\+\_\+ref\+\_\+t ares=A\+O\+S\+L\+\_\+\+R\+E\+F\+\_\+\+I\+N\+V\+A\+L\+ID)=0
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_remote_audio_track_a5b68756b82d9627149f3c9ef88d33b72}{adjust\+Audio\+Deceleration}} (int percentage, aosl\+\_\+ref\+\_\+t ares=A\+O\+S\+L\+\_\+\+R\+E\+F\+\_\+\+I\+N\+V\+A\+L\+ID)=0
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_remote_audio_track_a034b5b85b39ecd94b3c036457ab67b9a}{enable\+Audio\+Burst\+Accelerate}} (bool enable, aosl\+\_\+ref\+\_\+t ares=A\+O\+S\+L\+\_\+\+R\+E\+F\+\_\+\+I\+N\+V\+A\+L\+ID)=0
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_remote_audio_track_ac59334439920fc4e194fc3a18361a40d}{enable\+Spatial\+Audio}} (bool enabled, aosl\+\_\+ref\+\_\+t ares=A\+O\+S\+L\+\_\+\+R\+E\+F\+\_\+\+I\+N\+V\+A\+L\+ID)=0
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_remote_audio_track_aa1699ad1277aac43aae37be2dc1c3884}{set\+Remote\+User\+Spatial\+Audio\+Params}} (const \mbox{\hyperlink{structagora_1_1_spatial_audio_params}{agora\+::\+Spatial\+Audio\+Params}} \&params, aosl\+\_\+ref\+\_\+t ares=A\+O\+S\+L\+\_\+\+R\+E\+F\+\_\+\+I\+N\+V\+A\+L\+ID)=0
\end{DoxyCompactItemize}
\doxysubsection*{Additional Inherited Members}


\doxysubsection{Detailed Description}
The \mbox{\hyperlink{classagora_1_1rtc_1_1_i_remote_audio_track}{I\+Remote\+Audio\+Track}} class. 

\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_remote_audio_track_a7fa3cd504b1fdc3c06e133d358ab04e1}\label{classagora_1_1rtc_1_1_i_remote_audio_track_a7fa3cd504b1fdc3c06e133d358ab04e1}} 
\index{agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}!getStatistics@{getStatistics}}
\index{getStatistics@{getStatistics}!agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}}
\doxysubsubsection{\texorpdfstring{getStatistics()}{getStatistics()}}
{\footnotesize\ttfamily virtual bool agora\+::rtc\+::\+I\+Remote\+Audio\+Track\+::get\+Statistics (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_track_stats}{Remote\+Audio\+Track\+Stats}} \&}]{stats }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets the statistics of the remote audio track. 
\begin{DoxyParams}{Parameters}
{\em stats} & A reference to the statistics of the remote audio track\+: \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_track_stats}{Remote\+Audio\+Track\+Stats}}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item {\ttfamily true}\+: Success.
\item {\ttfamily false}\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_remote_audio_track_abcf5b94e335602c43a25ac8e6c479bc5}\label{classagora_1_1rtc_1_1_i_remote_audio_track_abcf5b94e335602c43a25ac8e6c479bc5}} 
\index{agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}!getState@{getState}}
\index{getState@{getState}!agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}}
\doxysubsubsection{\texorpdfstring{getState()}{getState()}}
{\footnotesize\ttfamily virtual R\+E\+M\+O\+T\+E\+\_\+\+A\+U\+D\+I\+O\+\_\+\+S\+T\+A\+TE agora\+::rtc\+::\+I\+Remote\+Audio\+Track\+::get\+State (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets the state of the remote audio. \begin{DoxyReturn}{Returns}
The state of the remote audio\+: \#\+R\+E\+M\+O\+T\+E\+\_\+\+A\+U\+D\+I\+O\+\_\+\+S\+T\+A\+TE. 
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_remote_audio_track_ab1eed30058b3e39a6aa6a1c505911c8c}\label{classagora_1_1rtc_1_1_i_remote_audio_track_ab1eed30058b3e39a6aa6a1c505911c8c}} 
\index{agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}!registerMediaPacketReceiver@{registerMediaPacketReceiver}}
\index{registerMediaPacketReceiver@{registerMediaPacketReceiver}!agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}}
\doxysubsubsection{\texorpdfstring{registerMediaPacketReceiver()}{registerMediaPacketReceiver()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+Remote\+Audio\+Track\+::register\+Media\+Packet\+Receiver (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_packet_receiver}{I\+Media\+Packet\+Receiver}} $\ast$}]{packet\+Receiver,  }\item[{aosl\+\_\+ref\+\_\+t}]{ares = {\ttfamily AOSL\+\_\+REF\+\_\+INVALID} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Registers an {\ttfamily \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_packet_receiver}{I\+Media\+Packet\+Receiver}}} object.

You need to implement the {\ttfamily \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_packet_receiver}{I\+Media\+Packet\+Receiver}}} class in this method. Once you successfully register the media packet receiver, the S\+DK triggers the {\ttfamily on\+Media\+Packet\+Received} callback when it receives an audio packet.


\begin{DoxyParams}{Parameters}
{\em packet\+Receiver} & The pointer to the {\ttfamily \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_packet_receiver}{I\+Media\+Packet\+Receiver}}} object. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item 0\+: Success.
\item $<$ 0\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_remote_audio_track_a8b22c1b4590029b24aebcfef64d25f5c}\label{classagora_1_1rtc_1_1_i_remote_audio_track_a8b22c1b4590029b24aebcfef64d25f5c}} 
\index{agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}!unregisterMediaPacketReceiver@{unregisterMediaPacketReceiver}}
\index{unregisterMediaPacketReceiver@{unregisterMediaPacketReceiver}!agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}}
\doxysubsubsection{\texorpdfstring{unregisterMediaPacketReceiver()}{unregisterMediaPacketReceiver()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+Remote\+Audio\+Track\+::unregister\+Media\+Packet\+Receiver (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_packet_receiver}{I\+Media\+Packet\+Receiver}} $\ast$}]{packet\+Receiver }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Releases the {\ttfamily \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_packet_receiver}{I\+Media\+Packet\+Receiver}}} object. 
\begin{DoxyParams}{Parameters}
{\em packet\+Receiver} & The pointer to the {\ttfamily \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_packet_receiver}{I\+Media\+Packet\+Receiver}}} object. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item 0\+: Success.
\item $<$ 0\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_remote_audio_track_aec06bba1297cb3f9112b1962971599cc}\label{classagora_1_1rtc_1_1_i_remote_audio_track_aec06bba1297cb3f9112b1962971599cc}} 
\index{agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}!registerAudioEncodedFrameReceiver@{registerAudioEncodedFrameReceiver}}
\index{registerAudioEncodedFrameReceiver@{registerAudioEncodedFrameReceiver}!agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}}
\doxysubsubsection{\texorpdfstring{registerAudioEncodedFrameReceiver()}{registerAudioEncodedFrameReceiver()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+Remote\+Audio\+Track\+::register\+Audio\+Encoded\+Frame\+Receiver (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_encoded_frame_receiver}{I\+Audio\+Encoded\+Frame\+Receiver}} $\ast$}]{packet\+Receiver,  }\item[{const \mbox{\hyperlink{structagora_1_1rtc_1_1_audio_enc_frame_recv_params}{Audio\+Enc\+Frame\+Recv\+Params}} \&}]{recv\+Params,  }\item[{aosl\+\_\+ref\+\_\+t}]{ares = {\ttfamily AOSL\+\_\+REF\+\_\+INVALID} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Registers an {\ttfamily \mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_encoded_frame_receiver}{I\+Audio\+Encoded\+Frame\+Receiver}}} object.

You need to implement the {\ttfamily \mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_encoded_frame_receiver}{I\+Audio\+Encoded\+Frame\+Receiver}}} class in this method. Once you successfully register the media packet receiver, the S\+DK triggers the {\ttfamily on\+Encoded\+Audio\+Frame\+Received} callback when it receives an audio packet.


\begin{DoxyParams}{Parameters}
{\em packet\+Receiver} & The pointer to the {\ttfamily \mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_encoded_frame_receiver}{I\+Audio\+Encoded\+Frame\+Receiver}}} object. \\
\hline
{\em recv\+Params} & The parameter \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item 0\+: Success.
\item $<$ 0\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_remote_audio_track_a691dc49d709e561225bf3c4eb9f9e134}\label{classagora_1_1rtc_1_1_i_remote_audio_track_a691dc49d709e561225bf3c4eb9f9e134}} 
\index{agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}!unregisterAudioEncodedFrameReceiver@{unregisterAudioEncodedFrameReceiver}}
\index{unregisterAudioEncodedFrameReceiver@{unregisterAudioEncodedFrameReceiver}!agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}}
\doxysubsubsection{\texorpdfstring{unregisterAudioEncodedFrameReceiver()}{unregisterAudioEncodedFrameReceiver()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+Remote\+Audio\+Track\+::unregister\+Audio\+Encoded\+Frame\+Receiver (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_encoded_frame_receiver}{I\+Audio\+Encoded\+Frame\+Receiver}} $\ast$}]{packet\+Receiver }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Releases the {\ttfamily \mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_encoded_frame_receiver}{I\+Audio\+Encoded\+Frame\+Receiver}}} object. 
\begin{DoxyParams}{Parameters}
{\em packet\+Receiver} & The pointer to the {\ttfamily \mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_encoded_frame_receiver}{I\+Audio\+Encoded\+Frame\+Receiver}}} object. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item 0\+: Success.
\item $<$ 0\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_remote_audio_track_a48b1a041d680e2ee20737301f8a4f49f}\label{classagora_1_1rtc_1_1_i_remote_audio_track_a48b1a041d680e2ee20737301f8a4f49f}} 
\index{agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}!setRemoteVoicePosition@{setRemoteVoicePosition}}
\index{setRemoteVoicePosition@{setRemoteVoicePosition}!agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}}
\doxysubsubsection{\texorpdfstring{setRemoteVoicePosition()}{setRemoteVoicePosition()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+Remote\+Audio\+Track\+::set\+Remote\+Voice\+Position (\begin{DoxyParamCaption}\item[{float}]{pan,  }\item[{float}]{gain,  }\item[{aosl\+\_\+ref\+\_\+t}]{ares = {\ttfamily AOSL\+\_\+REF\+\_\+INVALID} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Sets the sound position and gain


\begin{DoxyParams}{Parameters}
{\em pan} & The sound position of the remote user. The value ranges from -\/1.\+0 to 1.\+0\+:
\begin{DoxyItemize}
\item 0.\+0\+: the remote sound comes from the front.
\item -\/1.\+0\+: the remote sound comes from the left.
\item 1.\+0\+: the remote sound comes from the right. 
\end{DoxyItemize}\\
\hline
{\em gain} & Gain of the remote user. The value ranges from 0.\+0 to 100.\+0. The default value is 100.\+0 (the original gain of the remote user). The smaller the value, the less the gain.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item 0\+: Success.
\item $<$ 0\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_remote_audio_track_adf89b42d3a80a6504c28284481afb4a7}\label{classagora_1_1rtc_1_1_i_remote_audio_track_adf89b42d3a80a6504c28284481afb4a7}} 
\index{agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}!adjustDecodedAudioVolume@{adjustDecodedAudioVolume}}
\index{adjustDecodedAudioVolume@{adjustDecodedAudioVolume}!agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}}
\doxysubsubsection{\texorpdfstring{adjustDecodedAudioVolume()}{adjustDecodedAudioVolume()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+Remote\+Audio\+Track\+::adjust\+Decoded\+Audio\+Volume (\begin{DoxyParamCaption}\item[{int}]{decoded\+\_\+index,  }\item[{int}]{volume,  }\item[{aosl\+\_\+ref\+\_\+t}]{ares = {\ttfamily AOSL\+\_\+REF\+\_\+INVALID} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Sets the volume of each audio decoded channel


\begin{DoxyParams}{Parameters}
{\em decoded\+\_\+index} & The channel index of the remote user. The value ranges from 0 to 100\+: \\
\hline
{\em volume} & The channel index of the remote user. The value ranges from 0 to 100.
\begin{DoxyItemize}
\item 0\+: mute the channel.
\item 100\+: keep the origin volume of the channel.
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item 0\+: Success.
\item $<$ 0\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_remote_audio_track_a8f7f57cf8365862136b4a693f66663b4}\label{classagora_1_1rtc_1_1_i_remote_audio_track_a8f7f57cf8365862136b4a693f66663b4}} 
\index{agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}!muteRemoteFromTimestamp@{muteRemoteFromTimestamp}}
\index{muteRemoteFromTimestamp@{muteRemoteFromTimestamp}!agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}}
\doxysubsubsection{\texorpdfstring{muteRemoteFromTimestamp()}{muteRemoteFromTimestamp()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+Remote\+Audio\+Track\+::mute\+Remote\+From\+Timestamp (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{timestamp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

mute remote stream from timestamp

\begin{DoxyNote}{Note}

\begin{DoxyItemize}
\item unmute\+Remote\+From\+Timestamp should be called after mute\+Remote\+From\+Timestamp, othewise this stream will be muted all time
\end{DoxyItemize}
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em timestamp} & The rtp timestamp of start mute \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item 0\+: Success.
\item $<$ 0\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_remote_audio_track_ae1c94f8700c6fb14765d952dde172d7b}\label{classagora_1_1rtc_1_1_i_remote_audio_track_ae1c94f8700c6fb14765d952dde172d7b}} 
\index{agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}!unmuteRemoteFromTimestamp@{unmuteRemoteFromTimestamp}}
\index{unmuteRemoteFromTimestamp@{unmuteRemoteFromTimestamp}!agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}}
\doxysubsubsection{\texorpdfstring{unmuteRemoteFromTimestamp()}{unmuteRemoteFromTimestamp()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+Remote\+Audio\+Track\+::unmute\+Remote\+From\+Timestamp (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{timestamp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

unmute remote stream from timestamp

\begin{DoxyNote}{Note}

\begin{DoxyItemize}
\item unmute\+Remote\+From\+Timestamp should be called after mute\+Remote\+From\+Timestamp, othewise this stream will be muted all time
\end{DoxyItemize}
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em timestamp} & The rtp timestamp of start unmute \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item 0\+: Success.
\item $<$ 0\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_remote_audio_track_ae34b114053b10fa9a93ef9af35c0db77}\label{classagora_1_1rtc_1_1_i_remote_audio_track_ae34b114053b10fa9a93ef9af35c0db77}} 
\index{agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}!adjustAudioAcceleration@{adjustAudioAcceleration}}
\index{adjustAudioAcceleration@{adjustAudioAcceleration}!agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}}
\doxysubsubsection{\texorpdfstring{adjustAudioAcceleration()}{adjustAudioAcceleration()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+Remote\+Audio\+Track\+::adjust\+Audio\+Acceleration (\begin{DoxyParamCaption}\item[{int}]{percentage,  }\item[{aosl\+\_\+ref\+\_\+t}]{ares = {\ttfamily AOSL\+\_\+REF\+\_\+INVALID} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

set percentage of audio acceleration during poor network

\begin{DoxyNote}{Note}

\begin{DoxyItemize}
\item The relationship between this percentage and the degree of audio acceleration is non-\/linear and varies with different audio material.
\end{DoxyItemize}
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em percentage} & The percentage of audio acceleration. The value ranges from 0 to 100. The higher the percentage, the faster the acceleration. The default value is 100 (no change to the acceleration)\+:
\begin{DoxyItemize}
\item 0\+: disable audio acceleration.
\item $>$ 0\+: enable audio acceleration. 
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item 0\+: Success.
\item $<$ 0\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_remote_audio_track_a5b68756b82d9627149f3c9ef88d33b72}\label{classagora_1_1rtc_1_1_i_remote_audio_track_a5b68756b82d9627149f3c9ef88d33b72}} 
\index{agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}!adjustAudioDeceleration@{adjustAudioDeceleration}}
\index{adjustAudioDeceleration@{adjustAudioDeceleration}!agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}}
\doxysubsubsection{\texorpdfstring{adjustAudioDeceleration()}{adjustAudioDeceleration()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+Remote\+Audio\+Track\+::adjust\+Audio\+Deceleration (\begin{DoxyParamCaption}\item[{int}]{percentage,  }\item[{aosl\+\_\+ref\+\_\+t}]{ares = {\ttfamily AOSL\+\_\+REF\+\_\+INVALID} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

set percentage of audio deceleration during poor network

\begin{DoxyNote}{Note}

\begin{DoxyItemize}
\item The relationship between this percentage and the degree of audio deceleration is non-\/linear and varies with different audio material.
\end{DoxyItemize}
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em percentage} & The percentage of audio deceleration. The value ranges from 0 to 100. The higher the percentage, the faster the deceleration. The default value is 100 (no change to the deceleration)\+:
\begin{DoxyItemize}
\item 0\+: disable audio deceleration.
\item $>$ 0\+: enable audio deceleration. 
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item 0\+: Success.
\item $<$ 0\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_remote_audio_track_a034b5b85b39ecd94b3c036457ab67b9a}\label{classagora_1_1rtc_1_1_i_remote_audio_track_a034b5b85b39ecd94b3c036457ab67b9a}} 
\index{agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}!enableAudioBurstAccelerate@{enableAudioBurstAccelerate}}
\index{enableAudioBurstAccelerate@{enableAudioBurstAccelerate}!agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}}
\doxysubsubsection{\texorpdfstring{enableAudioBurstAccelerate()}{enableAudioBurstAccelerate()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+Remote\+Audio\+Track\+::enable\+Audio\+Burst\+Accelerate (\begin{DoxyParamCaption}\item[{bool}]{enable,  }\item[{aosl\+\_\+ref\+\_\+t}]{ares = {\ttfamily AOSL\+\_\+REF\+\_\+INVALID} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

enable audio fast acceleration during audio packets burst arrival.


\begin{DoxyParams}{Parameters}
{\em enable} & Whether to enable audio burst acceleration. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item 0\+: Success.
\item $<$ 0\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_remote_audio_track_ac59334439920fc4e194fc3a18361a40d}\label{classagora_1_1rtc_1_1_i_remote_audio_track_ac59334439920fc4e194fc3a18361a40d}} 
\index{agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}!enableSpatialAudio@{enableSpatialAudio}}
\index{enableSpatialAudio@{enableSpatialAudio}!agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}}
\doxysubsubsection{\texorpdfstring{enableSpatialAudio()}{enableSpatialAudio()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+Remote\+Audio\+Track\+::enable\+Spatial\+Audio (\begin{DoxyParamCaption}\item[{bool}]{enabled,  }\item[{aosl\+\_\+ref\+\_\+t}]{ares = {\ttfamily AOSL\+\_\+REF\+\_\+INVALID} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

enable spatial audio


\begin{DoxyParams}{Parameters}
{\em enabled} & enable/disable spatial audio\+:
\begin{DoxyItemize}
\item true\+: enable spatial audio.
\item false\+: disable spatial audio. 
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item 0\+: Success.
\item $<$ 0\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_remote_audio_track_aa1699ad1277aac43aae37be2dc1c3884}\label{classagora_1_1rtc_1_1_i_remote_audio_track_aa1699ad1277aac43aae37be2dc1c3884}} 
\index{agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}!setRemoteUserSpatialAudioParams@{setRemoteUserSpatialAudioParams}}
\index{setRemoteUserSpatialAudioParams@{setRemoteUserSpatialAudioParams}!agora::rtc::IRemoteAudioTrack@{agora::rtc::IRemoteAudioTrack}}
\doxysubsubsection{\texorpdfstring{setRemoteUserSpatialAudioParams()}{setRemoteUserSpatialAudioParams()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+Remote\+Audio\+Track\+::set\+Remote\+User\+Spatial\+Audio\+Params (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structagora_1_1_spatial_audio_params}{agora\+::\+Spatial\+Audio\+Params}} \&}]{params,  }\item[{aosl\+\_\+ref\+\_\+t}]{ares = {\ttfamily AOSL\+\_\+REF\+\_\+INVALID} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Sets remote user parameters for spatial audio


\begin{DoxyParams}{Parameters}
{\em params} & spatial audio parameters\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item 0\+: Success.
\item $<$ 0\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
