\hypertarget{interfaceio_1_1agora_1_1rtc2_1_1_i_media_extension_observer}{}\doxysection{io.\+agora.\+rtc2.\+I\+Media\+Extension\+Observer Interface Reference}
\label{interfaceio_1_1agora_1_1rtc2_1_1_i_media_extension_observer}\index{io.agora.rtc2.IMediaExtensionObserver@{io.agora.rtc2.IMediaExtensionObserver}}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
default void \mbox{\hyperlink{interfaceio_1_1agora_1_1rtc2_1_1_i_media_extension_observer_a98d2e0412fe5b1546ddb5b6ad152a459}{on\+Event\+With\+Context}} (\mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_extension_context}{Extension\+Context}} ext\+Context, String key, String value)
\begin{DoxyCompactList}\small\item\em The event callback of the extension. \end{DoxyCompactList}\item 
default void \mbox{\hyperlink{interfaceio_1_1agora_1_1rtc2_1_1_i_media_extension_observer_af0c59617f33086d46664ba7c9074d7e7}{on\+Started\+With\+Context}} (\mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_extension_context}{Extension\+Context}} ext\+Context)
\begin{DoxyCompactList}\small\item\em Occurs when the extension is enabled. \end{DoxyCompactList}\item 
default void \mbox{\hyperlink{interfaceio_1_1agora_1_1rtc2_1_1_i_media_extension_observer_a2b7aa9b81b3132ce9877fe3018f189ae}{on\+Stopped\+With\+Context}} (\mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_extension_context}{Extension\+Context}} ext\+Context)
\begin{DoxyCompactList}\small\item\em Occurs when the extension is disabled. \end{DoxyCompactList}\item 
default void \mbox{\hyperlink{interfaceio_1_1agora_1_1rtc2_1_1_i_media_extension_observer_a2087c4c0b5ea6e7538a02324add88922}{on\+Error\+With\+Context}} (\mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_extension_context}{Extension\+Context}} ext\+Context, int error, String message)
\begin{DoxyCompactList}\small\item\em Occurs when the extension runs incorrectly. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{interfaceio_1_1agora_1_1rtc2_1_1_i_media_extension_observer_a98d2e0412fe5b1546ddb5b6ad152a459}\label{interfaceio_1_1agora_1_1rtc2_1_1_i_media_extension_observer_a98d2e0412fe5b1546ddb5b6ad152a459}} 
\index{io.agora.rtc2.IMediaExtensionObserver@{io.agora.rtc2.IMediaExtensionObserver}!onEventWithContext@{onEventWithContext}}
\index{onEventWithContext@{onEventWithContext}!io.agora.rtc2.IMediaExtensionObserver@{io.agora.rtc2.IMediaExtensionObserver}}
\doxysubsubsection{\texorpdfstring{onEventWithContext()}{onEventWithContext()}}
{\footnotesize\ttfamily default void io.\+agora.\+rtc2.\+I\+Media\+Extension\+Observer.\+on\+Event\+With\+Context (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_extension_context}{Extension\+Context}}}]{ext\+Context,  }\item[{String}]{key,  }\item[{String}]{value }\end{DoxyParamCaption})}



The event callback of the extension. 

To listen for events while the extension is running, you need to register this callback.


\begin{DoxyParams}{Parameters}
{\em ext\+Context} & The context information of the extension, see {\ttfamily \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_extension_context}{Extension\+Context}}}. \\
\hline
{\em key} & The key of the extension. \\
\hline
{\em value} & The value of the extension key. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{interfaceio_1_1agora_1_1rtc2_1_1_i_media_extension_observer_af0c59617f33086d46664ba7c9074d7e7}\label{interfaceio_1_1agora_1_1rtc2_1_1_i_media_extension_observer_af0c59617f33086d46664ba7c9074d7e7}} 
\index{io.agora.rtc2.IMediaExtensionObserver@{io.agora.rtc2.IMediaExtensionObserver}!onStartedWithContext@{onStartedWithContext}}
\index{onStartedWithContext@{onStartedWithContext}!io.agora.rtc2.IMediaExtensionObserver@{io.agora.rtc2.IMediaExtensionObserver}}
\doxysubsubsection{\texorpdfstring{onStartedWithContext()}{onStartedWithContext()}}
{\footnotesize\ttfamily default void io.\+agora.\+rtc2.\+I\+Media\+Extension\+Observer.\+on\+Started\+With\+Context (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_extension_context}{Extension\+Context}}}]{ext\+Context }\end{DoxyParamCaption})}



Occurs when the extension is enabled. 

The callback is triggered after the extension is successfully enabled.


\begin{DoxyParams}{Parameters}
{\em ext\+Context} & The context information of the extension, see {\ttfamily \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_extension_context}{Extension\+Context}}}. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{interfaceio_1_1agora_1_1rtc2_1_1_i_media_extension_observer_a2b7aa9b81b3132ce9877fe3018f189ae}\label{interfaceio_1_1agora_1_1rtc2_1_1_i_media_extension_observer_a2b7aa9b81b3132ce9877fe3018f189ae}} 
\index{io.agora.rtc2.IMediaExtensionObserver@{io.agora.rtc2.IMediaExtensionObserver}!onStoppedWithContext@{onStoppedWithContext}}
\index{onStoppedWithContext@{onStoppedWithContext}!io.agora.rtc2.IMediaExtensionObserver@{io.agora.rtc2.IMediaExtensionObserver}}
\doxysubsubsection{\texorpdfstring{onStoppedWithContext()}{onStoppedWithContext()}}
{\footnotesize\ttfamily default void io.\+agora.\+rtc2.\+I\+Media\+Extension\+Observer.\+on\+Stopped\+With\+Context (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_extension_context}{Extension\+Context}}}]{ext\+Context }\end{DoxyParamCaption})}



Occurs when the extension is disabled. 

The callback is triggered after the extension is successfully disabled.


\begin{DoxyParams}{Parameters}
{\em ext\+Context} & The context information of the extension, see {\ttfamily \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_extension_context}{Extension\+Context}}}. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{interfaceio_1_1agora_1_1rtc2_1_1_i_media_extension_observer_a2087c4c0b5ea6e7538a02324add88922}\label{interfaceio_1_1agora_1_1rtc2_1_1_i_media_extension_observer_a2087c4c0b5ea6e7538a02324add88922}} 
\index{io.agora.rtc2.IMediaExtensionObserver@{io.agora.rtc2.IMediaExtensionObserver}!onErrorWithContext@{onErrorWithContext}}
\index{onErrorWithContext@{onErrorWithContext}!io.agora.rtc2.IMediaExtensionObserver@{io.agora.rtc2.IMediaExtensionObserver}}
\doxysubsubsection{\texorpdfstring{onErrorWithContext()}{onErrorWithContext()}}
{\footnotesize\ttfamily default void io.\+agora.\+rtc2.\+I\+Media\+Extension\+Observer.\+on\+Error\+With\+Context (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_extension_context}{Extension\+Context}}}]{ext\+Context,  }\item[{int}]{error,  }\item[{String}]{message }\end{DoxyParamCaption})}



Occurs when the extension runs incorrectly. 

In case of extension enabling failure or runtime errors, the extension triggers this callback and reports the error code along with the reasons.


\begin{DoxyParams}{Parameters}
{\em ext\+Context} & The context information of the extension, see {\ttfamily \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_extension_context}{Extension\+Context}}}. \\
\hline
{\em error} & Error code. For details, see the extension documentation provided by the extension provider. \\
\hline
{\em message} & Reason. For details, see the extension documentation provided by the extension provider. \\
\hline
\end{DoxyParams}
