\hypertarget{classio_1_1agora_1_1rte_1_1_player_info}{}\doxysection{io.\+agora.\+rte.\+Player\+Info Class Reference}
\label{classio_1_1agora_1_1rte_1_1_player_info}\index{io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classio_1_1agora_1_1rte_1_1_player_info_aa13d081bedd88ea2382f94dc44daa361}\label{classio_1_1agora_1_1rte_1_1_player_info_aa13d081bedd88ea2382f94dc44daa361}} 
long {\bfseries get\+Native\+Handle} ()
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rte_1_1_player_info_a25e32d58e14cdc6efb432606fd3311b5}{state}} ()
\item 
long \mbox{\hyperlink{classio_1_1agora_1_1rte_1_1_player_info_a88ac21e28126e408a62116ab6123383b}{duration}} ()
\begin{DoxyCompactList}\small\item\em Get the duration time of the current media source. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rte_1_1_player_info_af59e5f77129ccd317d8b234117ddc348}{stream\+Count}} ()
\item 
boolean \mbox{\hyperlink{classio_1_1agora_1_1rte_1_1_player_info_a9b713c888bfacbd7dd0b1798a46651a7}{has\+Audio}} ()
\item 
boolean \mbox{\hyperlink{classio_1_1agora_1_1rte_1_1_player_info_a1039d9014d28087e77e33287afba61f7}{has\+Video}} ()
\item 
boolean \mbox{\hyperlink{classio_1_1agora_1_1rte_1_1_player_info_afe8e68c4835440223621d1fd5333a809}{is\+Audio\+Muted}} ()
\begin{DoxyCompactList}\small\item\em Whether player stops receiving the audio stream. \end{DoxyCompactList}\item 
boolean \mbox{\hyperlink{classio_1_1agora_1_1rte_1_1_player_info_a438c63a90193c8e0e10d71c505da9982}{is\+Video\+Muted}} ()
\begin{DoxyCompactList}\small\item\em Whether player stops receiving the video stream. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rte_1_1_player_info_ac2cad459a6b20a0b5c40c4d3ac884f25}{video\+Height}} ()
\begin{DoxyCompactList}\small\item\em Get the video resolution height. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rte_1_1_player_info_a3fd4d4412e418b52786cb864616f9847}{video\+Width}} ()
\begin{DoxyCompactList}\small\item\em Get the video resolution width. \end{DoxyCompactList}\item 
Constants.\+Abr\+Subscription\+Layer \mbox{\hyperlink{classio_1_1agora_1_1rte_1_1_player_info_a39bc24480871f597e0d0de5fac65e7a1}{abr\+Subscription\+Layer}} ()
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rte_1_1_player_info_ac794ba62f700b4f2c2377457b32e5acd}{audio\+Sample\+Rate}} ()
\begin{DoxyCompactList}\small\item\em Get the audio sample rate. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rte_1_1_player_info_a718a5b232d0ae6c558ca325fbd9f0963}{audio\+Channels}} ()
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rte_1_1_player_info_a0b01613bb788dcb006983776f159f78d}{audio\+Bits\+Per\+Sample}} ()
\begin{DoxyCompactList}\small\item\em Get the audio bits per sample. \end{DoxyCompactList}\item 
String \mbox{\hyperlink{classio_1_1agora_1_1rte_1_1_player_info_ac19cb4c6f2c1d90d5d53f54b2c33ba37}{current\+Url}} ()
\end{DoxyCompactItemize}
\doxysubsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classio_1_1agora_1_1rte_1_1_player_info_aba4f0a1814a3a5e218b56996f0c11933}\label{classio_1_1agora_1_1rte_1_1_player_info_aba4f0a1814a3a5e218b56996f0c11933}} 
void {\bfseries finalize} ()
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\mbox{\hyperlink{classio_1_1agora_1_1rte_1_1_player}{Player}} information. When the player\+Info information changes, it will be notified through the \mbox{\hyperlink{classio_1_1agora_1_1rte_1_1_player_observer_af660c74cf1136d2ae309599251270565}{Player\+Observer.\+on\+Player\+Info\+Updated}} callback. It can also be actively obtained through the \mbox{\hyperlink{classio_1_1agora_1_1rte_1_1_player_a27fb0a75f54333ef5d2472840b739b61}{Player.\+get\+Info}} interface. \begin{DoxySince}{Since}
v4.\+4.\+0 
\end{DoxySince}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classio_1_1agora_1_1rte_1_1_player_info_a25e32d58e14cdc6efb432606fd3311b5}\label{classio_1_1agora_1_1rte_1_1_player_info_a25e32d58e14cdc6efb432606fd3311b5}} 
\index{io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}!state@{state}}
\index{state@{state}!io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}}
\doxysubsubsection{\texorpdfstring{state()}{state()}}
{\footnotesize\ttfamily int io.\+agora.\+rte.\+Player\+Info.\+state (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

Current player state. \mbox{\Hypertarget{classio_1_1agora_1_1rte_1_1_player_info_a88ac21e28126e408a62116ab6123383b}\label{classio_1_1agora_1_1rte_1_1_player_info_a88ac21e28126e408a62116ab6123383b}} 
\index{io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}!duration@{duration}}
\index{duration@{duration}!io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}}
\doxysubsubsection{\texorpdfstring{duration()}{duration()}}
{\footnotesize\ttfamily long io.\+agora.\+rte.\+Player\+Info.\+duration (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Get the duration time of the current media source. 

\begin{DoxySince}{Since}
v4.\+5.\+1 
\end{DoxySince}
\begin{DoxyNote}{Note}
This is valid when playing local media files or on-\/demand streams. 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
The duration time of the current media source, in milliseconds. 
\end{DoxyReturn}
\mbox{\Hypertarget{classio_1_1agora_1_1rte_1_1_player_info_af59e5f77129ccd317d8b234117ddc348}\label{classio_1_1agora_1_1rte_1_1_player_info_af59e5f77129ccd317d8b234117ddc348}} 
\index{io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}!streamCount@{streamCount}}
\index{streamCount@{streamCount}!io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}}
\doxysubsubsection{\texorpdfstring{streamCount()}{streamCount()}}
{\footnotesize\ttfamily int io.\+agora.\+rte.\+Player\+Info.\+stream\+Count (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

\mbox{\hyperlink{classio_1_1agora_1_1rte_1_1_stream}{Stream}} count. This field is only valid when opening a non-\/\+R\+TE U\+RL. \mbox{\Hypertarget{classio_1_1agora_1_1rte_1_1_player_info_a9b713c888bfacbd7dd0b1798a46651a7}\label{classio_1_1agora_1_1rte_1_1_player_info_a9b713c888bfacbd7dd0b1798a46651a7}} 
\index{io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}!hasAudio@{hasAudio}}
\index{hasAudio@{hasAudio}!io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}}
\doxysubsubsection{\texorpdfstring{hasAudio()}{hasAudio()}}
{\footnotesize\ttfamily boolean io.\+agora.\+rte.\+Player\+Info.\+has\+Audio (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

Whether there is an audio stream. Indicates whether the url source contains the audio stream.
\begin{DoxyItemize}
\item true\+: The url source contains the audio stream.
\item false\+: The url source does not contain the audio stream. 
\end{DoxyItemize}\mbox{\Hypertarget{classio_1_1agora_1_1rte_1_1_player_info_a1039d9014d28087e77e33287afba61f7}\label{classio_1_1agora_1_1rte_1_1_player_info_a1039d9014d28087e77e33287afba61f7}} 
\index{io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}!hasVideo@{hasVideo}}
\index{hasVideo@{hasVideo}!io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}}
\doxysubsubsection{\texorpdfstring{hasVideo()}{hasVideo()}}
{\footnotesize\ttfamily boolean io.\+agora.\+rte.\+Player\+Info.\+has\+Video (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

Whether there is a video stream. Indicates whether the url source contains the video stream.
\begin{DoxyItemize}
\item true\+: The url source contains the video stream.
\item false\+: The url source does not contain the video stream. 
\end{DoxyItemize}\mbox{\Hypertarget{classio_1_1agora_1_1rte_1_1_player_info_afe8e68c4835440223621d1fd5333a809}\label{classio_1_1agora_1_1rte_1_1_player_info_afe8e68c4835440223621d1fd5333a809}} 
\index{io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}!isAudioMuted@{isAudioMuted}}
\index{isAudioMuted@{isAudioMuted}!io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}}
\doxysubsubsection{\texorpdfstring{isAudioMuted()}{isAudioMuted()}}
{\footnotesize\ttfamily boolean io.\+agora.\+rte.\+Player\+Info.\+is\+Audio\+Muted (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Whether player stops receiving the audio stream. 

\begin{DoxySince}{Since}
v4.\+4.\+0
\end{DoxySince}
Indicates whether the player stops receiving the audio stream. \begin{DoxyReturn}{Returns}
bool Whether player stops receiving the audio stream.
\begin{DoxyItemize}
\item true\+: Stop receiving the audio stream.
\item false\+: Continue receiving the audio stream. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classio_1_1agora_1_1rte_1_1_player_info_a438c63a90193c8e0e10d71c505da9982}\label{classio_1_1agora_1_1rte_1_1_player_info_a438c63a90193c8e0e10d71c505da9982}} 
\index{io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}!isVideoMuted@{isVideoMuted}}
\index{isVideoMuted@{isVideoMuted}!io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}}
\doxysubsubsection{\texorpdfstring{isVideoMuted()}{isVideoMuted()}}
{\footnotesize\ttfamily boolean io.\+agora.\+rte.\+Player\+Info.\+is\+Video\+Muted (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Whether player stops receiving the video stream. 

\begin{DoxySince}{Since}
v4.\+4.\+0
\end{DoxySince}
Indicates whether the player stops receiving the video stream. \begin{DoxyReturn}{Returns}
bool Whether player stops receiving the video stream.
\begin{DoxyItemize}
\item true\+: Stop receiving the video stream.
\item false\+: Continue receiving the video stream. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classio_1_1agora_1_1rte_1_1_player_info_ac2cad459a6b20a0b5c40c4d3ac884f25}\label{classio_1_1agora_1_1rte_1_1_player_info_ac2cad459a6b20a0b5c40c4d3ac884f25}} 
\index{io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}!videoHeight@{videoHeight}}
\index{videoHeight@{videoHeight}!io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}}
\doxysubsubsection{\texorpdfstring{videoHeight()}{videoHeight()}}
{\footnotesize\ttfamily int io.\+agora.\+rte.\+Player\+Info.\+video\+Height (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Get the video resolution height. 

\begin{DoxySince}{Since}
v4.\+5.\+1 
\end{DoxySince}
\begin{DoxyReturn}{Returns}
The video resolution height, in pixels. 
\end{DoxyReturn}
\mbox{\Hypertarget{classio_1_1agora_1_1rte_1_1_player_info_a3fd4d4412e418b52786cb864616f9847}\label{classio_1_1agora_1_1rte_1_1_player_info_a3fd4d4412e418b52786cb864616f9847}} 
\index{io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}!videoWidth@{videoWidth}}
\index{videoWidth@{videoWidth}!io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}}
\doxysubsubsection{\texorpdfstring{videoWidth()}{videoWidth()}}
{\footnotesize\ttfamily int io.\+agora.\+rte.\+Player\+Info.\+video\+Width (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Get the video resolution width. 

\begin{DoxySince}{Since}
v4.\+5.\+1 
\end{DoxySince}
\begin{DoxyReturn}{Returns}
The video resolution width, in pixels. 
\end{DoxyReturn}
\mbox{\Hypertarget{classio_1_1agora_1_1rte_1_1_player_info_a39bc24480871f597e0d0de5fac65e7a1}\label{classio_1_1agora_1_1rte_1_1_player_info_a39bc24480871f597e0d0de5fac65e7a1}} 
\index{io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}!abrSubscriptionLayer@{abrSubscriptionLayer}}
\index{abrSubscriptionLayer@{abrSubscriptionLayer}!io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}}
\doxysubsubsection{\texorpdfstring{abrSubscriptionLayer()}{abrSubscriptionLayer()}}
{\footnotesize\ttfamily Constants.\+Abr\+Subscription\+Layer io.\+agora.\+rte.\+Player\+Info.\+abr\+Subscription\+Layer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

The currently subscribed video layer. This field is only valid when you open an R\+TE U\+RL. \mbox{\Hypertarget{classio_1_1agora_1_1rte_1_1_player_info_ac794ba62f700b4f2c2377457b32e5acd}\label{classio_1_1agora_1_1rte_1_1_player_info_ac794ba62f700b4f2c2377457b32e5acd}} 
\index{io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}!audioSampleRate@{audioSampleRate}}
\index{audioSampleRate@{audioSampleRate}!io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}}
\doxysubsubsection{\texorpdfstring{audioSampleRate()}{audioSampleRate()}}
{\footnotesize\ttfamily int io.\+agora.\+rte.\+Player\+Info.\+audio\+Sample\+Rate (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Get the audio sample rate. 

\begin{DoxySince}{Since}
v4.\+5.\+1 
\end{DoxySince}
\begin{DoxyReturn}{Returns}
The audio sample rate, in Hz. 
\end{DoxyReturn}
\mbox{\Hypertarget{classio_1_1agora_1_1rte_1_1_player_info_a718a5b232d0ae6c558ca325fbd9f0963}\label{classio_1_1agora_1_1rte_1_1_player_info_a718a5b232d0ae6c558ca325fbd9f0963}} 
\index{io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}!audioChannels@{audioChannels}}
\index{audioChannels@{audioChannels}!io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}}
\doxysubsubsection{\texorpdfstring{audioChannels()}{audioChannels()}}
{\footnotesize\ttfamily int io.\+agora.\+rte.\+Player\+Info.\+audio\+Channels (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

Number of audio channels. \mbox{\Hypertarget{classio_1_1agora_1_1rte_1_1_player_info_a0b01613bb788dcb006983776f159f78d}\label{classio_1_1agora_1_1rte_1_1_player_info_a0b01613bb788dcb006983776f159f78d}} 
\index{io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}!audioBitsPerSample@{audioBitsPerSample}}
\index{audioBitsPerSample@{audioBitsPerSample}!io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}}
\doxysubsubsection{\texorpdfstring{audioBitsPerSample()}{audioBitsPerSample()}}
{\footnotesize\ttfamily int io.\+agora.\+rte.\+Player\+Info.\+audio\+Bits\+Per\+Sample (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Get the audio bits per sample. 

\begin{DoxySince}{Since}
v4.\+5.\+1 
\end{DoxySince}
\begin{DoxyNote}{Note}
This field is only valid when opening a non-\/\+R\+TE U\+RL. 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
The audio bits per sample, in bits. 
\end{DoxyReturn}
\mbox{\Hypertarget{classio_1_1agora_1_1rte_1_1_player_info_ac19cb4c6f2c1d90d5d53f54b2c33ba37}\label{classio_1_1agora_1_1rte_1_1_player_info_ac19cb4c6f2c1d90d5d53f54b2c33ba37}} 
\index{io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}!currentUrl@{currentUrl}}
\index{currentUrl@{currentUrl}!io.agora.rte.PlayerInfo@{io.agora.rte.PlayerInfo}}
\doxysubsubsection{\texorpdfstring{currentUrl()}{currentUrl()}}
{\footnotesize\ttfamily String io.\+agora.\+rte.\+Player\+Info.\+current\+Url (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

The U\+RL being played. 