\hypertarget{interfaceio_1_1agora_1_1rtc2_1_1_i_audio_encoded_frame_observer}{}\doxysection{io.\+agora.\+rtc2.\+I\+Audio\+Encoded\+Frame\+Observer Interface Reference}
\label{interfaceio_1_1agora_1_1rtc2_1_1_i_audio_encoded_frame_observer}\index{io.agora.rtc2.IAudioEncodedFrameObserver@{io.agora.rtc2.IAudioEncodedFrameObserver}}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
abstract void \mbox{\hyperlink{interfaceio_1_1agora_1_1rtc2_1_1_i_audio_encoded_frame_observer_ae50cf90d8cfb5751a5bff7f688ee79ba}{on\+Record\+Audio\+Encoded\+Frame}} (Byte\+Buffer buffer, int samples\+Per\+Channel, int channels, int samples\+Per\+Sec, int codec\+Type)
\begin{DoxyCompactList}\small\item\em Gets the encoded audio data of the local user. \end{DoxyCompactList}\item 
abstract void \mbox{\hyperlink{interfaceio_1_1agora_1_1rtc2_1_1_i_audio_encoded_frame_observer_ad85754df761faa0482077c8fdf2bd391}{on\+Playback\+Audio\+Encoded\+Frame}} (Byte\+Buffer buffer, int samples\+Per\+Channel, int channels, int samples\+Per\+Sec, int codec\+Type)
\begin{DoxyCompactList}\small\item\em Gets the encoded audio data of all remote users. \end{DoxyCompactList}\item 
abstract void \mbox{\hyperlink{interfaceio_1_1agora_1_1rtc2_1_1_i_audio_encoded_frame_observer_acb05f2b074d9ab3cb1b17418ddb7d56d}{on\+Mixed\+Audio\+Encoded\+Frame}} (Byte\+Buffer buffer, int samples\+Per\+Channel, int channels, int samples\+Per\+Sec, int codec\+Type)
\begin{DoxyCompactList}\small\item\em Gets the mixed and encoded audio data of the local and all remote users. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{interfaceio_1_1agora_1_1rtc2_1_1_i_audio_encoded_frame_observer_ae50cf90d8cfb5751a5bff7f688ee79ba}\label{interfaceio_1_1agora_1_1rtc2_1_1_i_audio_encoded_frame_observer_ae50cf90d8cfb5751a5bff7f688ee79ba}} 
\index{io.agora.rtc2.IAudioEncodedFrameObserver@{io.agora.rtc2.IAudioEncodedFrameObserver}!onRecordAudioEncodedFrame@{onRecordAudioEncodedFrame}}
\index{onRecordAudioEncodedFrame@{onRecordAudioEncodedFrame}!io.agora.rtc2.IAudioEncodedFrameObserver@{io.agora.rtc2.IAudioEncodedFrameObserver}}
\doxysubsubsection{\texorpdfstring{onRecordAudioEncodedFrame()}{onRecordAudioEncodedFrame()}}
{\footnotesize\ttfamily abstract void io.\+agora.\+rtc2.\+I\+Audio\+Encoded\+Frame\+Observer.\+on\+Record\+Audio\+Encoded\+Frame (\begin{DoxyParamCaption}\item[{Byte\+Buffer}]{buffer,  }\item[{int}]{samples\+Per\+Channel,  }\item[{int}]{channels,  }\item[{int}]{samples\+Per\+Sec,  }\item[{int}]{codec\+Type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [abstract]}}



Gets the encoded audio data of the local user. 

After calling {\ttfamily register\+Audio\+Encoded\+Frame\+Observer} and setting the encoded audio as A\+U\+D\+I\+O\+\_\+\+E\+N\+C\+O\+D\+E\+D\+\_\+\+F\+R\+A\+M\+E\+\_\+\+O\+B\+S\+E\+R\+V\+E\+R\+\_\+\+P\+O\+S\+I\+T\+I\+O\+N\+\_\+\+M\+IC, you can get the encoded audio data of the local user from this callback.


\begin{DoxyParams}{Parameters}
{\em buffer} & The audio buffer. \\
\hline
{\em samples\+Per\+Channel} & The number of samples per channel in the audio frame. \\
\hline
{\em channels} & The number of channels.
\begin{DoxyItemize}
\item 1\+: Mono.
\item 2\+: Stereo. If the channel uses stereo, the data is interleaved. 
\end{DoxyItemize}\\
\hline
{\em samples\+Per\+Sec} & Recording sample rate (Hz). \\
\hline
{\em codec\+Type} & Audio encoding type\+:
\begin{DoxyItemize}
\item A\+U\+D\+I\+O\+\_\+\+C\+O\+D\+E\+C\+\_\+\+O\+P\+US (1)\+: O\+P\+US.
\item A\+U\+D\+I\+O\+\_\+\+C\+O\+D\+E\+C\+\_\+\+A\+A\+C\+LC (8)\+: L\+C-\/\+A\+AC.
\item A\+U\+D\+I\+O\+\_\+\+C\+O\+D\+E\+C\+\_\+\+H\+E\+A\+AC (9)\+: H\+E-\/\+A\+AC.
\item A\+U\+D\+I\+O\+\_\+\+C\+O\+D\+E\+C\+\_\+\+H\+E\+A\+A\+C2 (11)\+: H\+E-\/\+A\+AC v2. 
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{interfaceio_1_1agora_1_1rtc2_1_1_i_audio_encoded_frame_observer_ad85754df761faa0482077c8fdf2bd391}\label{interfaceio_1_1agora_1_1rtc2_1_1_i_audio_encoded_frame_observer_ad85754df761faa0482077c8fdf2bd391}} 
\index{io.agora.rtc2.IAudioEncodedFrameObserver@{io.agora.rtc2.IAudioEncodedFrameObserver}!onPlaybackAudioEncodedFrame@{onPlaybackAudioEncodedFrame}}
\index{onPlaybackAudioEncodedFrame@{onPlaybackAudioEncodedFrame}!io.agora.rtc2.IAudioEncodedFrameObserver@{io.agora.rtc2.IAudioEncodedFrameObserver}}
\doxysubsubsection{\texorpdfstring{onPlaybackAudioEncodedFrame()}{onPlaybackAudioEncodedFrame()}}
{\footnotesize\ttfamily abstract void io.\+agora.\+rtc2.\+I\+Audio\+Encoded\+Frame\+Observer.\+on\+Playback\+Audio\+Encoded\+Frame (\begin{DoxyParamCaption}\item[{Byte\+Buffer}]{buffer,  }\item[{int}]{samples\+Per\+Channel,  }\item[{int}]{channels,  }\item[{int}]{samples\+Per\+Sec,  }\item[{int}]{codec\+Type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [abstract]}}



Gets the encoded audio data of all remote users. 

After calling {\ttfamily register\+Audio\+Encoded\+Frame\+Observer} and setting the encoded audio as A\+U\+D\+I\+O\+\_\+\+E\+N\+C\+O\+D\+E\+D\+\_\+\+F\+R\+A\+M\+E\+\_\+\+O\+B\+S\+E\+R\+V\+E\+R\+\_\+\+P\+O\+S\+I\+T\+I\+O\+N\+\_\+\+P\+L\+A\+Y\+B\+A\+CK, you can get encoded audio data of all remote users through this callback.


\begin{DoxyParams}{Parameters}
{\em buffer} & The audio buffer. \\
\hline
{\em samples\+Per\+Channel} & The number of samples per channel in the audio frame. \\
\hline
{\em channels} & The number of channels.
\begin{DoxyItemize}
\item 1\+: Mono.
\item 2\+: Stereo. If the channel uses stereo, the data is interleaved. 
\end{DoxyItemize}\\
\hline
{\em samples\+Per\+Sec} & Recording sample rate (Hz). \\
\hline
{\em codec\+Type} & Audio encoding type\+:
\begin{DoxyItemize}
\item A\+U\+D\+I\+O\+\_\+\+C\+O\+D\+E\+C\+\_\+\+O\+P\+US (1)\+: O\+P\+US.
\item A\+U\+D\+I\+O\+\_\+\+C\+O\+D\+E\+C\+\_\+\+A\+A\+C\+LC (8)\+: L\+C-\/\+A\+AC.
\item A\+U\+D\+I\+O\+\_\+\+C\+O\+D\+E\+C\+\_\+\+H\+E\+A\+AC (9)\+: H\+E-\/\+A\+AC.
\item A\+U\+D\+I\+O\+\_\+\+C\+O\+D\+E\+C\+\_\+\+H\+E\+A\+A\+C2 (11)\+: H\+E-\/\+A\+AC v2. 
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{interfaceio_1_1agora_1_1rtc2_1_1_i_audio_encoded_frame_observer_acb05f2b074d9ab3cb1b17418ddb7d56d}\label{interfaceio_1_1agora_1_1rtc2_1_1_i_audio_encoded_frame_observer_acb05f2b074d9ab3cb1b17418ddb7d56d}} 
\index{io.agora.rtc2.IAudioEncodedFrameObserver@{io.agora.rtc2.IAudioEncodedFrameObserver}!onMixedAudioEncodedFrame@{onMixedAudioEncodedFrame}}
\index{onMixedAudioEncodedFrame@{onMixedAudioEncodedFrame}!io.agora.rtc2.IAudioEncodedFrameObserver@{io.agora.rtc2.IAudioEncodedFrameObserver}}
\doxysubsubsection{\texorpdfstring{onMixedAudioEncodedFrame()}{onMixedAudioEncodedFrame()}}
{\footnotesize\ttfamily abstract void io.\+agora.\+rtc2.\+I\+Audio\+Encoded\+Frame\+Observer.\+on\+Mixed\+Audio\+Encoded\+Frame (\begin{DoxyParamCaption}\item[{Byte\+Buffer}]{buffer,  }\item[{int}]{samples\+Per\+Channel,  }\item[{int}]{channels,  }\item[{int}]{samples\+Per\+Sec,  }\item[{int}]{codec\+Type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [abstract]}}



Gets the mixed and encoded audio data of the local and all remote users. 

After calling {\ttfamily register\+Audio\+Encoded\+Frame\+Observer} and setting the audio profile as A\+U\+D\+I\+O\+\_\+\+E\+N\+C\+O\+D\+E\+D\+\_\+\+F\+R\+A\+M\+E\+\_\+\+O\+B\+S\+E\+R\+V\+E\+R\+\_\+\+P\+O\+S\+I\+T\+I\+O\+N\+\_\+\+M\+I\+X\+ED, you can get the mixed and encoded audio data of the local and all remote users through this callback.


\begin{DoxyParams}{Parameters}
{\em buffer} & The audio buffer. \\
\hline
{\em samples\+Per\+Channel} & The number of samples per channel in the audio frame. \\
\hline
{\em channels} & The number of channels.
\begin{DoxyItemize}
\item 1\+: Mono.
\item 2\+: Stereo. If the channel uses stereo, the data is interleaved. 
\end{DoxyItemize}\\
\hline
{\em samples\+Per\+Sec} & Recording sample rate (Hz). \\
\hline
{\em codec\+Type} & Audio encoding type\+:
\begin{DoxyItemize}
\item A\+U\+D\+I\+O\+\_\+\+C\+O\+D\+E\+C\+\_\+\+O\+P\+US (1)\+: O\+P\+US.
\item A\+U\+D\+I\+O\+\_\+\+C\+O\+D\+E\+C\+\_\+\+A\+A\+C\+LC (8)\+: L\+C-\/\+A\+AC.
\item A\+U\+D\+I\+O\+\_\+\+C\+O\+D\+E\+C\+\_\+\+H\+E\+A\+AC (9)\+: H\+E-\/\+A\+AC.
\item A\+U\+D\+I\+O\+\_\+\+C\+O\+D\+E\+C\+\_\+\+H\+E\+A\+A\+C2 (11)\+: H\+E-\/\+A\+AC v2. 
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
