\hypertarget{classagora_1_1rtc_1_1_i_rtmp_local_user_observer}{}\doxysection{agora\+::rtc\+::I\+Rtmp\+Local\+User\+Observer Class Reference}
\label{classagora_1_1rtc_1_1_i_rtmp_local_user_observer}\index{agora::rtc::IRtmpLocalUserObserver@{agora::rtc::IRtmpLocalUserObserver}}


{\ttfamily \#include $<$N\+G\+I\+Agora\+Rtmp\+Local\+User.\+h$>$}

\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual void \mbox{\hyperlink{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_abe9563be302786d9169bd0497966f159}{on\+Audio\+Track\+Publish\+Success}} (\mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_local_audio_track}{rtc\+::\+I\+Local\+Audio\+Track}} $>$ audio\+Track)=0
\item 
virtual void \mbox{\hyperlink{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_acc2f17a624d23169b8f7c8ad9d79c564}{on\+Audio\+Track\+Publish\+Start}} (\mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_local_audio_track}{rtc\+::\+I\+Local\+Audio\+Track}} $>$ audio\+Track)=0
\item 
virtual void \mbox{\hyperlink{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_a103b9453229d7db20c0729cf8fba2c56}{on\+Audio\+Track\+Unpublished}} (\mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_local_audio_track}{rtc\+::\+I\+Local\+Audio\+Track}} $>$ audio\+Track)=0
\item 
virtual void \mbox{\hyperlink{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_af119ccd1ffc2ba46a936633682202788}{on\+Audio\+Track\+Publication\+Failure}} (\mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_local_audio_track}{rtc\+::\+I\+Local\+Audio\+Track}} $>$ audio\+Track, Publish\+Audio\+Error error)=0
\item 
virtual void \mbox{\hyperlink{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_aebd9dae26bcec9794ae48a070a875703}{on\+Video\+Track\+Publish\+Success}} (\mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_local_video_track}{rtc\+::\+I\+Local\+Video\+Track}} $>$ video\+Track)=0
\item 
virtual void \mbox{\hyperlink{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_acd7ba7f8ca3580d6b135a3f612fc2b86}{on\+Video\+Track\+Publish\+Start}} (\mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_local_video_track}{rtc\+::\+I\+Local\+Video\+Track}} $>$ video\+Track)=0
\item 
virtual void \mbox{\hyperlink{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_a04844e1b6d441410ac606b6deedcd29d}{on\+Video\+Track\+Unpublished}} (\mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_local_video_track}{rtc\+::\+I\+Local\+Video\+Track}} $>$ video\+Track)=0
\item 
virtual void \mbox{\hyperlink{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_a78e9bf0041f021465584df39bf2434bd}{on\+Video\+Track\+Publication\+Failure}} (\mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_local_video_track}{rtc\+::\+I\+Local\+Video\+Track}} $>$ video\+Track, Publish\+Video\+Error error)=0
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The \mbox{\hyperlink{classagora_1_1rtc_1_1_i_rtmp_local_user_observer}{I\+Rtmp\+Local\+User\+Observer}} class. 

\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_abe9563be302786d9169bd0497966f159}\label{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_abe9563be302786d9169bd0497966f159}} 
\index{agora::rtc::IRtmpLocalUserObserver@{agora::rtc::IRtmpLocalUserObserver}!onAudioTrackPublishSuccess@{onAudioTrackPublishSuccess}}
\index{onAudioTrackPublishSuccess@{onAudioTrackPublishSuccess}!agora::rtc::IRtmpLocalUserObserver@{agora::rtc::IRtmpLocalUserObserver}}
\doxysubsubsection{\texorpdfstring{onAudioTrackPublishSuccess()}{onAudioTrackPublishSuccess()}}
{\footnotesize\ttfamily virtual void agora\+::rtc\+::\+I\+Rtmp\+Local\+User\+Observer\+::on\+Audio\+Track\+Publish\+Success (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_local_audio_track}{rtc\+::\+I\+Local\+Audio\+Track}} $>$}]{audio\+Track }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Occurs when the first packet of the local audio track is sent, indicating that the local audio track is successfully published.


\begin{DoxyParams}{Parameters}
{\em audio\+Track} & The pointer to \mbox{\hyperlink{classagora_1_1rtc_1_1_i_local_audio_track}{I\+Local\+Audio\+Track}}. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_acc2f17a624d23169b8f7c8ad9d79c564}\label{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_acc2f17a624d23169b8f7c8ad9d79c564}} 
\index{agora::rtc::IRtmpLocalUserObserver@{agora::rtc::IRtmpLocalUserObserver}!onAudioTrackPublishStart@{onAudioTrackPublishStart}}
\index{onAudioTrackPublishStart@{onAudioTrackPublishStart}!agora::rtc::IRtmpLocalUserObserver@{agora::rtc::IRtmpLocalUserObserver}}
\doxysubsubsection{\texorpdfstring{onAudioTrackPublishStart()}{onAudioTrackPublishStart()}}
{\footnotesize\ttfamily virtual void agora\+::rtc\+::\+I\+Rtmp\+Local\+User\+Observer\+::on\+Audio\+Track\+Publish\+Start (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_local_audio_track}{rtc\+::\+I\+Local\+Audio\+Track}} $>$}]{audio\+Track }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

\begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000002}{Deprecated}}]This method will not be called back \end{DoxyRefDesc}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_a103b9453229d7db20c0729cf8fba2c56}\label{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_a103b9453229d7db20c0729cf8fba2c56}} 
\index{agora::rtc::IRtmpLocalUserObserver@{agora::rtc::IRtmpLocalUserObserver}!onAudioTrackUnpublished@{onAudioTrackUnpublished}}
\index{onAudioTrackUnpublished@{onAudioTrackUnpublished}!agora::rtc::IRtmpLocalUserObserver@{agora::rtc::IRtmpLocalUserObserver}}
\doxysubsubsection{\texorpdfstring{onAudioTrackUnpublished()}{onAudioTrackUnpublished()}}
{\footnotesize\ttfamily virtual void agora\+::rtc\+::\+I\+Rtmp\+Local\+User\+Observer\+::on\+Audio\+Track\+Unpublished (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_local_audio_track}{rtc\+::\+I\+Local\+Audio\+Track}} $>$}]{audio\+Track }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

\begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000003}{Deprecated}}]This method will not be called back \end{DoxyRefDesc}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_af119ccd1ffc2ba46a936633682202788}\label{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_af119ccd1ffc2ba46a936633682202788}} 
\index{agora::rtc::IRtmpLocalUserObserver@{agora::rtc::IRtmpLocalUserObserver}!onAudioTrackPublicationFailure@{onAudioTrackPublicationFailure}}
\index{onAudioTrackPublicationFailure@{onAudioTrackPublicationFailure}!agora::rtc::IRtmpLocalUserObserver@{agora::rtc::IRtmpLocalUserObserver}}
\doxysubsubsection{\texorpdfstring{onAudioTrackPublicationFailure()}{onAudioTrackPublicationFailure()}}
{\footnotesize\ttfamily virtual void agora\+::rtc\+::\+I\+Rtmp\+Local\+User\+Observer\+::on\+Audio\+Track\+Publication\+Failure (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_local_audio_track}{rtc\+::\+I\+Local\+Audio\+Track}} $>$}]{audio\+Track,  }\item[{Publish\+Audio\+Error}]{error }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Occurs when the local audio track fails to be published.


\begin{DoxyParams}{Parameters}
{\em audio\+Track} & The pointer to \mbox{\hyperlink{classagora_1_1rtc_1_1_i_local_audio_track}{I\+Local\+Audio\+Track}}. \\
\hline
{\em error} & The error information\+: \#\+Rtmp\+Audio\+Stream\+Error. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_aebd9dae26bcec9794ae48a070a875703}\label{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_aebd9dae26bcec9794ae48a070a875703}} 
\index{agora::rtc::IRtmpLocalUserObserver@{agora::rtc::IRtmpLocalUserObserver}!onVideoTrackPublishSuccess@{onVideoTrackPublishSuccess}}
\index{onVideoTrackPublishSuccess@{onVideoTrackPublishSuccess}!agora::rtc::IRtmpLocalUserObserver@{agora::rtc::IRtmpLocalUserObserver}}
\doxysubsubsection{\texorpdfstring{onVideoTrackPublishSuccess()}{onVideoTrackPublishSuccess()}}
{\footnotesize\ttfamily virtual void agora\+::rtc\+::\+I\+Rtmp\+Local\+User\+Observer\+::on\+Video\+Track\+Publish\+Success (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_local_video_track}{rtc\+::\+I\+Local\+Video\+Track}} $>$}]{video\+Track }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Occurs when the first packet of the local video track is sent, indicating that the local video track is successfully published. 
\begin{DoxyParams}{Parameters}
{\em video\+Track} & The pointer to \mbox{\hyperlink{classagora_1_1rtc_1_1_i_local_video_track}{I\+Local\+Video\+Track}}. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_acd7ba7f8ca3580d6b135a3f612fc2b86}\label{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_acd7ba7f8ca3580d6b135a3f612fc2b86}} 
\index{agora::rtc::IRtmpLocalUserObserver@{agora::rtc::IRtmpLocalUserObserver}!onVideoTrackPublishStart@{onVideoTrackPublishStart}}
\index{onVideoTrackPublishStart@{onVideoTrackPublishStart}!agora::rtc::IRtmpLocalUserObserver@{agora::rtc::IRtmpLocalUserObserver}}
\doxysubsubsection{\texorpdfstring{onVideoTrackPublishStart()}{onVideoTrackPublishStart()}}
{\footnotesize\ttfamily virtual void agora\+::rtc\+::\+I\+Rtmp\+Local\+User\+Observer\+::on\+Video\+Track\+Publish\+Start (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_local_video_track}{rtc\+::\+I\+Local\+Video\+Track}} $>$}]{video\+Track }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

\begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000004}{Deprecated}}]This method will not be called back \end{DoxyRefDesc}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_a04844e1b6d441410ac606b6deedcd29d}\label{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_a04844e1b6d441410ac606b6deedcd29d}} 
\index{agora::rtc::IRtmpLocalUserObserver@{agora::rtc::IRtmpLocalUserObserver}!onVideoTrackUnpublished@{onVideoTrackUnpublished}}
\index{onVideoTrackUnpublished@{onVideoTrackUnpublished}!agora::rtc::IRtmpLocalUserObserver@{agora::rtc::IRtmpLocalUserObserver}}
\doxysubsubsection{\texorpdfstring{onVideoTrackUnpublished()}{onVideoTrackUnpublished()}}
{\footnotesize\ttfamily virtual void agora\+::rtc\+::\+I\+Rtmp\+Local\+User\+Observer\+::on\+Video\+Track\+Unpublished (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_local_video_track}{rtc\+::\+I\+Local\+Video\+Track}} $>$}]{video\+Track }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

\begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000005}{Deprecated}}]This method will not be called back \end{DoxyRefDesc}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_a78e9bf0041f021465584df39bf2434bd}\label{classagora_1_1rtc_1_1_i_rtmp_local_user_observer_a78e9bf0041f021465584df39bf2434bd}} 
\index{agora::rtc::IRtmpLocalUserObserver@{agora::rtc::IRtmpLocalUserObserver}!onVideoTrackPublicationFailure@{onVideoTrackPublicationFailure}}
\index{onVideoTrackPublicationFailure@{onVideoTrackPublicationFailure}!agora::rtc::IRtmpLocalUserObserver@{agora::rtc::IRtmpLocalUserObserver}}
\doxysubsubsection{\texorpdfstring{onVideoTrackPublicationFailure()}{onVideoTrackPublicationFailure()}}
{\footnotesize\ttfamily virtual void agora\+::rtc\+::\+I\+Rtmp\+Local\+User\+Observer\+::on\+Video\+Track\+Publication\+Failure (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_local_video_track}{rtc\+::\+I\+Local\+Video\+Track}} $>$}]{video\+Track,  }\item[{Publish\+Video\+Error}]{error }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Occurs when the local video track fails to be published.


\begin{DoxyParams}{Parameters}
{\em video\+Track} & The pointer to \mbox{\hyperlink{classagora_1_1rtc_1_1_i_local_video_track}{I\+Local\+Video\+Track}}. \\
\hline
{\em error} & The error information\+: \#\+Rtmp\+Video\+Stream\+Error. \\
\hline
\end{DoxyParams}
