\doxysection{com.\+tritondigital.\+player.\+Sbm\+Player Class Reference}
\hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer}{}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer}\index{com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}}


Side-\/\+Band Metadata player.  


Inheritance diagram for com.\+tritondigital.\+player.\+Sbm\+Player\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classcom_1_1tritondigital_1_1player_1_1SbmPlayer}
\end{center}
\end{figure}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a4f8dcdfcf2f452511f1f0e3e67aad48d}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a4f8dcdfcf2f452511f1f0e3e67aad48d} 
{\bfseries Sbm\+Player} (Context context, Bundle settings)
\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
boolean \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a484392faa3f689d9391498e4c4373330}{is\+Timeshift\+Streaming}} ()
\item 
\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a4a3efcb519afc083414de224c820dcd1}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a4a3efcb519afc083414de224c820dcd1} 
int {\bfseries get\+Offset} ()
\begin{DoxyCompactList}\small\item\em Returns the metadata/audio offset in milliseconds. \end{DoxyCompactList}\item 
\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_ab8765a1f1f9f316662179eb3f914572a}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_ab8765a1f1f9f316662179eb3f914572a} 
void {\bfseries set\+Offset} (int offset)
\begin{DoxyCompactList}\small\item\em Sets the offset in milliseconds of to apply to the side band player to synchronise it with you media stream. \end{DoxyCompactList}\item 
boolean \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_ad2f5efe4507b6083a6a5ee0730dc1981}{is\+Pausable}} ()
\item 
int \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_af6e7d3de2f2e7d481f084cbce18a0566}{get\+Duration}} ()
\item 
int \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a54e7c52a23ecf8700bfdc1b9352cab54}{get\+Position}} ()
\item 
float \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a5b4c1cdf7730a57d9ea1f3b682ac8584}{get\+Volume}} ()
\item 
boolean \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_aceb93419d428500ff0458f9c83809920}{is\+Seekable}} ()
\item 
void \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a834ca48f2c9a7d025d3cb997f71cd5b5}{set\+Volume}} (float volume)
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer}{com.\+tritondigital.\+player.\+Media\+Player}}}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer_a69f3431c27dd20522f632a92ee78811a}{Media\+Player}} (Context context, Bundle settings)
\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
Bundle {\bfseries get\+Settings} ()
\begin{DoxyCompactList}\small\item\em Returns the settings of this player. \end{DoxyCompactList}\item 
int {\bfseries get\+State} ()
\begin{DoxyCompactList}\small\item\em Returns the player\textquotesingle{}s state. \end{DoxyCompactList}\item 
Bundle {\bfseries get\+Last\+Cue\+Point} ()
\begin{DoxyCompactList}\small\item\em Returns the last received cue point. \end{DoxyCompactList}\item 
int {\bfseries get\+Last\+Error\+Code} ()
\begin{DoxyCompactList}\small\item\em Returns the last error code. \end{DoxyCompactList}\item 
\mbox{\hyperlink{interfacecom_1_1tritondigital_1_1player_1_1MediaPlayer_1_1OnCuePointReceivedListener}{On\+Cue\+Point\+Received\+Listener}} {\bfseries get\+On\+Cue\+Point\+Received\+Listener} ()
\begin{DoxyCompactList}\small\item\em Returns the cue point listener. \end{DoxyCompactList}\item 
\mbox{\hyperlink{interfacecom_1_1tritondigital_1_1player_1_1MediaPlayer_1_1OnMetaDataReceivedListener}{On\+Meta\+Data\+Received\+Listener}} {\bfseries get\+Metadata\+Listener} ()
\begin{DoxyCompactList}\small\item\em Returns the metadata listener. \end{DoxyCompactList}\item 
\mbox{\hyperlink{interfacecom_1_1tritondigital_1_1player_1_1MediaPlayer_1_1OnInfoListener}{On\+Info\+Listener}} {\bfseries get\+On\+Info\+Listener} ()
\begin{DoxyCompactList}\small\item\em Returns the info listener. \end{DoxyCompactList}\item 
\mbox{\hyperlink{interfacecom_1_1tritondigital_1_1player_1_1MediaPlayer_1_1OnStateChangedListener}{On\+State\+Changed\+Listener}} {\bfseries get\+On\+State\+Changed\+Listener} ()
\begin{DoxyCompactList}\small\item\em Returns the state changed listener. \end{DoxyCompactList}\item 
\mbox{\hyperlink{interfacecom_1_1tritondigital_1_1player_1_1MediaPlayer_1_1OnAnalyticsReceivedListener}{On\+Analytics\+Received\+Listener}} {\bfseries get\+Analytics\+Received\+Listener} ()
\item 
\mbox{\hyperlink{interfacecom_1_1tritondigital_1_1player_1_1MediaPlayer_1_1OnCloudStreamInfoReceivedListener}{On\+Cloud\+Stream\+Info\+Received\+Listener}} {\bfseries get\+Cloud\+Stream\+Info\+Received\+Listener} ()
\item 
void {\bfseries set\+On\+Cue\+Point\+Received\+Listener} (\mbox{\hyperlink{interfacecom_1_1tritondigital_1_1player_1_1MediaPlayer_1_1OnCuePointReceivedListener}{On\+Cue\+Point\+Received\+Listener}} listener)
\begin{DoxyCompactList}\small\item\em Sets the cue point event listener. \end{DoxyCompactList}\item 
void {\bfseries set\+On\+Meta\+Data\+Received\+Listener} (\mbox{\hyperlink{interfacecom_1_1tritondigital_1_1player_1_1MediaPlayer_1_1OnMetaDataReceivedListener}{On\+Meta\+Data\+Received\+Listener}} listener)
\begin{DoxyCompactList}\small\item\em Sets the cue point event listener. \end{DoxyCompactList}\item 
void {\bfseries set\+On\+Info\+Listener} (\mbox{\hyperlink{interfacecom_1_1tritondigital_1_1player_1_1MediaPlayer_1_1OnInfoListener}{On\+Info\+Listener}} listener)
\begin{DoxyCompactList}\small\item\em Sets the info listener. \end{DoxyCompactList}\item 
void {\bfseries set\+On\+State\+Changed\+Listener} (\mbox{\hyperlink{interfacecom_1_1tritondigital_1_1player_1_1MediaPlayer_1_1OnStateChangedListener}{On\+State\+Changed\+Listener}} listener)
\begin{DoxyCompactList}\small\item\em Sets the state changed listener. \end{DoxyCompactList}\item 
void {\bfseries set\+On\+Analytics\+Received\+Listener} (\mbox{\hyperlink{interfacecom_1_1tritondigital_1_1player_1_1MediaPlayer_1_1OnAnalyticsReceivedListener}{On\+Analytics\+Received\+Listener}} listener)
\begin{DoxyCompactList}\small\item\em Sets the analytics changed listener. \end{DoxyCompactList}\item 
void {\bfseries set\+On\+Cloud\+Stream\+Info\+Received\+Listener} (\mbox{\hyperlink{interfacecom_1_1tritondigital_1_1player_1_1MediaPlayer_1_1OnCloudStreamInfoReceivedListener}{On\+Cloud\+Stream\+Info\+Received\+Listener}} listener)
\begin{DoxyCompactList}\small\item\em Sets the timeshift programs listener. \end{DoxyCompactList}\item 
final void \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer_a0b85bfd7ba27a59aa66e39394657f0c6}{seek\+To}} (int position, int original)
\begin{DoxyCompactList}\small\item\em Seek to the provided position. \end{DoxyCompactList}\item 
final void \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer_aea3bdb519a9f7310f0c880465ea17064}{seek\+To}} (int position)
\begin{DoxyCompactList}\small\item\em Seek to the provided position. \end{DoxyCompactList}\item 
void {\bfseries seek} (int delta)
\begin{DoxyCompactList}\small\item\em Seek to a time from the current position. \end{DoxyCompactList}\item 
final void {\bfseries seek\+To\+Live} ()
\item 
void {\bfseries get\+Cloud\+Stream\+Info} ()
\item 
void {\bfseries play\+Program} (String program\+Id)
\item 
final void {\bfseries play} ()
\item 
final void {\bfseries play} (boolean timeshift\+Streaming)
\begin{DoxyCompactList}\small\item\em Starts the playback. \end{DoxyCompactList}\item 
final void \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer_aa9f6233637a15089831ed4faec5a6799}{pause}} ()
\begin{DoxyCompactList}\small\item\em Pauses the playback so it can be resumed at the same position by calling play(). \end{DoxyCompactList}\item 
final void {\bfseries change\+Speed} (Float speed)
\item 
final void {\bfseries stop} ()
\begin{DoxyCompactList}\small\item\em Stops the playback. \end{DoxyCompactList}\item 
final void \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer_a2d0403557ffa5d482f75679baa2f6f13}{release}} ()
\begin{DoxyCompactList}\small\item\em Releases the player resources. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer_a281031f80d3d9b95a2ae72efbd45b860}{get\+Error\+Code}} ()
\end{DoxyCompactItemize}
\doxysubsubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static String \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a05466d4b4641533a8fa03cd7424f3e13}{generate\+Sbm\+Id}} ()
\begin{DoxyCompactList}\small\item\em Generates a Side-\/\+Band Metadata session ID. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Static Public Member Functions inherited from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer}{com.\+tritondigital.\+player.\+Media\+Player}}}
\begin{DoxyCompactItemize}
\item 
static boolean {\bfseries is\+Play\+Valid\+In\+State} (int state)
\begin{DoxyCompactList}\small\item\em Returns true if a play request is valid in the provided state. \end{DoxyCompactList}\item 
static boolean \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer_ad433d114dd8d7c533fa237372f5b921c}{is\+Transition\+Valid}} (int state0, int state1)
\begin{DoxyCompactList}\small\item\em Returns true if the provided state transition is valid. \end{DoxyCompactList}\item 
static String \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer_af2d532fc24b0cd17b7dbd59756f6496d}{debug\+Error\+To\+Str}} (int error\+Code)
\begin{DoxyCompactList}\small\item\em Utility method to convert an error code to a debug string. \end{DoxyCompactList}\item 
static String \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer_aca11b94dc739028007e1899bd1ddad6e}{debug\+Info\+To\+Str}} (int info)
\begin{DoxyCompactList}\small\item\em Utility method to convert an info code to a debug string. \end{DoxyCompactList}\item 
static String \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer_a7cf3837f8584f61f7dc04247b7dfdc13}{debug\+State\+To\+Str}} (int state)
\begin{DoxyCompactList}\small\item\em Utility method to convert the player state to a debug string. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a6978e594a25a0bc9f5b90c81b67e8100}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a6978e594a25a0bc9f5b90c81b67e8100} 
static final String {\bfseries SETTINGS\+\_\+\+SBM\+\_\+\+URL} = \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1PlayerConsts_a39e2556cdab26ee97f4f5faf871e2954}{Player\+Consts.\+SBM\+\_\+\+URL}}
\end{DoxyCompactItemize}
\doxysubsection*{Static Public Attributes inherited from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer}{com.\+tritondigital.\+player.\+Media\+Player}}}
\begin{DoxyCompactItemize}
\item 
static final int {\bfseries ERROR\+\_\+\+LOW\+\_\+\+LEVEL\+\_\+\+PLAYER\+\_\+\+ERROR} = 210
\begin{DoxyCompactList}\small\item\em Error code indicating an error in the OS player or Google Cast. \end{DoxyCompactList}\item 
static final int {\bfseries ERROR\+\_\+\+CONNECTION\+\_\+\+FAILED} = 211
\begin{DoxyCompactList}\small\item\em Error code indicating a connection problem to the server. \end{DoxyCompactList}\item 
static final int {\bfseries ERROR\+\_\+\+CONNECTION\+\_\+\+TIMEOUT} = 408
\begin{DoxyCompactList}\small\item\em Error code indicating than the connection has timed out. \end{DoxyCompactList}\item 
static final int {\bfseries ERROR\+\_\+\+UNEXPECTED\+\_\+\+END\+\_\+\+OF\+\_\+\+MEDIA} = 213
\begin{DoxyCompactList}\small\item\em Error code indicating the end of a media which shouldn\textquotesingle{}t occur on live streaming. \end{DoxyCompactList}\item 
static final int {\bfseries ERROR\+\_\+\+UNEXPECTED\+\_\+\+END\+\_\+\+OF\+\_\+\+MEDIA\+\_\+\+ANDROID\+\_\+\+PLAYER} = 214
\begin{DoxyCompactList}\small\item\em Error code indicating the end of a media which shouldn\textquotesingle{}t occur on live streaming. \end{DoxyCompactList}\item 
static final int {\bfseries ERROR\+\_\+\+EXOPLAYER\+\_\+\+BUFFER\+\_\+\+RECONNECT} = 212
\begin{DoxyCompactList}\small\item\em Error code indicating that low delay increased 3 times an still did not fill the buffer. \end{DoxyCompactList}\item 
static final int \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer_a62d5aedde9b5868133a7f8eb5f7eba3c}{ERROR\+\_\+\+EXOPLAYER\+\_\+\+BUFFER\+\_\+\+TIMEOUT}} = 218
\begin{DoxyCompactList}\small\item\em Error code indicating buffer timed out. \end{DoxyCompactList}\item 
static final int \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer_a22190484ade67b33c7c2234a4d3b13c8}{ERROR\+\_\+\+EXOPLAYER\+\_\+\+ON\+\_\+\+ERROR}} = 219
\begin{DoxyCompactList}\small\item\em Error code indicating buffer timed out. \end{DoxyCompactList}\item 
static final int {\bfseries ERROR\+\_\+\+GEOBLOCKED} = 453
\begin{DoxyCompactList}\small\item\em Error code indicating that the stream can\textquotesingle{}t be used in the user location. \end{DoxyCompactList}\item 
static final int {\bfseries ERROR\+\_\+\+INVALID\+\_\+\+URL} = 216
\begin{DoxyCompactList}\small\item\em Error code indicating that the URL isn\textquotesingle{}t in a valid format. \end{DoxyCompactList}\item 
static final int {\bfseries ERROR\+\_\+\+NO\+\_\+\+NETWORK} = 217
\begin{DoxyCompactList}\small\item\em Error code indicating the lack of network connectivity. \end{DoxyCompactList}\item 
static final int {\bfseries ERROR\+\_\+\+NOT\+\_\+\+FOUND} = 404
\begin{DoxyCompactList}\small\item\em Error code indicating that the input source couldn\textquotesingle{}t be found. \end{DoxyCompactList}\item 
static final int {\bfseries ERROR\+\_\+\+SERVICE\+\_\+\+UNAVAILABLE} = 503
\begin{DoxyCompactList}\small\item\em Error code indicating that no server is available. \end{DoxyCompactList}\item 
static final int {\bfseries STATE\+\_\+\+COMPLETED} = 200
\begin{DoxyCompactList}\small\item\em The end of the media source has been reached (on-\/demand only) \end{DoxyCompactList}\item 
static final int {\bfseries STATE\+\_\+\+CONNECTING} = 201
\begin{DoxyCompactList}\small\item\em The player is connecting to the server or buffering. \end{DoxyCompactList}\item 
static final int {\bfseries STATE\+\_\+\+ERROR} = 202
\begin{DoxyCompactList}\small\item\em An error has occurred. \end{DoxyCompactList}\item 
static final int {\bfseries STATE\+\_\+\+PLAYING} = 203
\begin{DoxyCompactList}\small\item\em The playback is started. \end{DoxyCompactList}\item 
static final int {\bfseries STATE\+\_\+\+RELEASED} = 204
\begin{DoxyCompactList}\small\item\em The resources have been released and this player instance can no longer be used. \end{DoxyCompactList}\item 
static final int {\bfseries STATE\+\_\+\+STOPPED} = 205
\begin{DoxyCompactList}\small\item\em The playback is stopped. \end{DoxyCompactList}\item 
static final int {\bfseries STATE\+\_\+\+PAUSED} = 206
\begin{DoxyCompactList}\small\item\em The playback is paused (on-\/demand only) \end{DoxyCompactList}\item 
static final int {\bfseries DURATION\+\_\+\+LIVE\+\_\+\+STREAM} = Integer.\+MAX\+\_\+\+VALUE
\begin{DoxyCompactList}\small\item\em Live stream. \end{DoxyCompactList}\item 
static final int {\bfseries DURATION\+\_\+\+UNKNOWN} = -\/1
\begin{DoxyCompactList}\small\item\em Unknown duration. \end{DoxyCompactList}\item 
static final int {\bfseries POSITION\+\_\+\+UNKNOWN} = 0
\begin{DoxyCompactList}\small\item\em Unknown position. \end{DoxyCompactList}\item 
static final float {\bfseries VOLUME\+\_\+\+DUCK} = 0.\+2f
\begin{DoxyCompactList}\small\item\em Ducked volume. \end{DoxyCompactList}\item 
static final float {\bfseries VOLUME\+\_\+\+MUTE} = 0.\+0f
\begin{DoxyCompactList}\small\item\em Muted volume. \end{DoxyCompactList}\item 
static final float {\bfseries VOLUME\+\_\+\+NORMAL} = 1.\+0f
\begin{DoxyCompactList}\small\item\em Normal volume. \end{DoxyCompactList}\item 
static final int {\bfseries INFO\+\_\+\+ALTERNATE\+\_\+\+MOUNT} = 270
\begin{DoxyCompactList}\small\item\em A the player has connected to an alternate mount. \end{DoxyCompactList}\item 
static final int {\bfseries INFO\+\_\+\+SEEK\+\_\+\+COMPLETED} = 271
\begin{DoxyCompactList}\small\item\em A seek operation has completed. \end{DoxyCompactList}\item 
static final int {\bfseries INFO\+\_\+\+DURATION\+\_\+\+CHANGED} = 272
\begin{DoxyCompactList}\small\item\em Media duration changed (extra=duration) \end{DoxyCompactList}\item 
static final int {\bfseries INFO\+\_\+\+SEEKABLE\+\_\+\+CHANGED} = 273
\begin{DoxyCompactList}\small\item\em Seekable state change (0=false / 1=true) \end{DoxyCompactList}\item 
static final int {\bfseries INFO\+\_\+\+SEEK\+\_\+\+STARTED} = 274
\begin{DoxyCompactList}\small\item\em A seek operation has begun. \end{DoxyCompactList}\item 
static final int {\bfseries INFO\+\_\+\+BUFFERING\+\_\+\+START} = 275
\begin{DoxyCompactList}\small\item\em Temporarily pausing playback internally in order to buffer more data. \end{DoxyCompactList}\item 
static final int {\bfseries INFO\+\_\+\+BUFFERING\+\_\+\+COMPLETED} = 276
\begin{DoxyCompactList}\small\item\em The playback is resumed after filling buffers. \end{DoxyCompactList}\item 
static final int \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer_afd6c9cfbb8ad8b513a8d8c88a4e1ff3d}{ERROR\+\_\+\+END\+\_\+\+OF\+\_\+\+MEDIA}} = \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer_a14bd94f6b0348ddfc1ff46c4326208ec}{ERROR\+\_\+\+UNEXPECTED\+\_\+\+END\+\_\+\+OF\+\_\+\+MEDIA}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
void \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a8d6e72a0d2ccb3b8e6feacd509a359cc}{internal\+Play}} ()
\item 
void \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_ac1ae827543fe8764ec0a5b00a5f3bed7}{internal\+Play}} (boolean timeshift\+Streaming)
\item 
void \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_ac6636e6f06e06bed15964fced98fd7b9}{internal\+Stop}} ()
\item 
void \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_aac2bdc174109f68f843b1988b6822880}{internal\+Release}} ()
\item 
void \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a08dbffa5068c8eab9742b9fb3d38b479}{internal\+Change\+Speed}} (Float speed)
\item 
void \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a4b8ca49276352cabcd2cd108578b0457}{internal\+Get\+Cloud\+Stream\+Info}} ()
\item 
void \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a1fc35dcc9f5add45ff09a9bdd8b67027}{internal\+Play\+Program}} (String program\+Id)
\item 
String \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a552c8f490da29dde63de670214ce5585}{make\+Tag}} ()
\item 
boolean \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a4c60ca792d8e9462d2c0cec4795ed758}{is\+Event\+Logging\+Enabled}} ()
\item 
void \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a004051980f6a8530e5d1ca2b1453717c}{internal\+Pause}} ()
\item 
void \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a9ace6a957c73ad1e22a388cbb1b71806}{internal\+Seek\+To}} (int position, int original)
\end{DoxyCompactItemize}
\doxysubsubsection*{Additional Inherited Members}
\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer}{com.\+tritondigital.\+player.\+Media\+Player}}}
\begin{DoxyCompactItemize}
\item 
final String {\bfseries TAG} = make\+Tag()
\item 
final Bundle {\bfseries m\+Settings}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Side-\/\+Band Metadata player. 

\begin{DoxyNote}{Note}
For special cases only. Most clients will never have to use this class.
\end{DoxyNote}
This player connects to a Triton server and downloads the cue points linked to an audio stream session. SBM needs to be enabled on the server side.

\begin{DoxyParagraph}{Session ID (sbmid)}
The same session ID ({\bfseries{sbmid}}) must be provided to the audio URL and SBM URL parameters. Use Sbm\+Player.\+generate\+Sbm\+Id() to create it. The current Sbm\+Player implementation doesn\textquotesingle{}t support updating the ID; therefore, you must create a new instance on each play request.
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example}

\end{DoxyParagraph}

\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keyword}{public}\ \textcolor{keyword}{class\ }SbmPlayerActivity\ \textcolor{keyword}{extends}\ Activity\ implements}
\DoxyCodeLine{\ \ \ \ MediaPlayer.OnErrorListener,\ MediaPlayer.OnPreparedListener,}
\DoxyCodeLine{\ \ \ \ SbmPlayer.OnCuePointReceivedListener}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{private}\ \textcolor{keyword}{static}\ \textcolor{keyword}{final}\ String\ SBM\_URL\ \ \ \ =\ \textcolor{stringliteral}{"{}http://1651.live.preprod01.streamtheworld.net:80/HLS\_TEST\_SBM"{}};}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{private}\ \textcolor{keyword}{static}\ \textcolor{keyword}{final}\ String\ STREAM\_URL\ =\ \textcolor{stringliteral}{"{}http://1651.live.preprod01.streamtheworld.net:80/HLS\_TEST\_SC"{}};}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{private}\ MediaPlayer\ mMediaPlayer;}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{private}\ SbmPlayer\ \ \ mSbmPlayer;}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{private}\ \textcolor{keywordtype}{boolean}\ \ \ \ \ mPlayRequested;}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{private}\ StreamUrlBuilder\ mStreamUrlBuilder;}
\DoxyCodeLine{}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ @Override}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{protected}\ \textcolor{keywordtype}{void}\ onCreate(Bundle\ savedInstanceState)\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ super.onCreate(savedInstanceState);}
\DoxyCodeLine{\ \ \ \ \ \ \ \ setVolumeControlStream(AudioManager.STREAM\_MUSIC);}
\DoxyCodeLine{\ \ \ \ \ \ \ \ setContentView(layout);}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{comment}{//\ Create\ the\ Android\ player}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ mMediaPlayer\ =\ \textcolor{keyword}{new}\ MediaPlayer();}
\DoxyCodeLine{\ \ \ \ \ \ \ \ mMediaPlayer.setAudioStreamType(AudioManager.STREAM\_MUSIC);}
\DoxyCodeLine{\ \ \ \ \ \ \ \ mMediaPlayer.setOnErrorListener(\textcolor{keyword}{this});}
\DoxyCodeLine{\ \ \ \ \ \ \ \ mMediaPlayer.setOnPreparedListener(\textcolor{keyword}{this});}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{comment}{//\ Add\ your\ tracking\ parameters\ here.}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ mStreamUrlBuilder\ =\ \textcolor{keyword}{new}\ StreamUrlBuilder(\textcolor{keyword}{this})}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ .enableLocationTracking(\textcolor{keyword}{true})}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ .setHost(STREAM\_URL);}
\DoxyCodeLine{\ \ \ \ \}}
\DoxyCodeLine{}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ @Override}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{protected}\ \textcolor{keywordtype}{void}\ onDestroy()\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ mMediaPlayer.release();}
\DoxyCodeLine{\ \ \ \ \ \ \ \ releaseSbmPlayer();}
\DoxyCodeLine{\ \ \ \ \ \ \ \ super.onDestroy();}
\DoxyCodeLine{\ \ \ \ \}}
\DoxyCodeLine{}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ @Override}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{public}\ \textcolor{keywordtype}{boolean}\ onError(MediaPlayer\ androidPlayer,\ \textcolor{keywordtype}{int}\ what,\ \textcolor{keywordtype}{int}\ extra)\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ releaseSbmPlayer();}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{false};}
\DoxyCodeLine{\ \ \ \ \}}
\DoxyCodeLine{}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ @Override}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{public}\ \textcolor{keywordtype}{void}\ onPrepared(MediaPlayer\ androidPlayer)\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!isFinishing())\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ androidPlayer.start();}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (mSbmPlayer\ !=\ \textcolor{keyword}{null})\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ mSbmPlayer.play();}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \}}
\DoxyCodeLine{}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ @Override}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{public}\ \textcolor{keywordtype}{void}\ onCuePointReceived(MediaPlayer\ sbmPlayer,\ Bundle\ cuePoint)\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{comment}{//\ Do\ something\ here}}
\DoxyCodeLine{\ \ \ \ \}}
\DoxyCodeLine{}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{public}\ \textcolor{keywordtype}{void}\ startPlayback()\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!mPlayRequested)\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ mPlayRequested\ =\ \textcolor{keyword}{true};}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{try}\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Create\ SBM\ and\ player\ URLS.\ We\ calling\ "{}mStreamUrlBuilder.build()"{}}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ every\ time\ to\ refresh\ the\ location\ and\ the\ advertising\ ID.}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ String\ sbmid\ =\ SbmPlayer.generateSbmId();}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ String\ streamUrl\ =\ mStreamUrlBuilder.build()\ +\ \textcolor{stringliteral}{"{}\&sbmid="{}}\ +\ sbmid;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ String\ sbmUrl\ =\ SBM\_URL\ +\ \textcolor{stringliteral}{"{}?sbmid="{}}\ +\ sbmid;}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Create\ SBM\ player}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Bundle\ sbmPlayerSettings\ =\ \textcolor{keyword}{new}\ Bundle();}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ sbmPlayerSettings.putString(SbmPlayer.SETTINGS\_STREAM\_URL,\ sbmUrl);}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ mSbmPlayer\ =\ \textcolor{keyword}{new}\ SbmPlayer(\textcolor{keyword}{this},\ sbmPlayerSettings);}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ mSbmPlayer.setOnCuePointReceivedListener(\textcolor{keyword}{this});}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Create\ Android\ Player}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ mMediaPlayer.setDataSource(\textcolor{keyword}{this},\ Uri.parse(streamUrl));}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ mMediaPlayer.prepareAsync();}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{catch}\ (Exception\ e)\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ e.printStackTrace();}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \}}
\DoxyCodeLine{}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{public}\ \textcolor{keywordtype}{void}\ stopPlayback()\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{comment}{//\ Ignore\ double\ stop\ requests.}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!mPlayRequested)\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ mPlayRequested\ =\ \textcolor{keyword}{false};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ mMediaPlayer.reset();}
\DoxyCodeLine{\ \ \ \ \ \ \ \ releaseSbmPlayer();}
\DoxyCodeLine{\ \ \ \ \}}
\DoxyCodeLine{}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{private}\ \textcolor{keywordtype}{void}\ releaseSbmPlayer()\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ mCuePointIdx\ =\ 0;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ mPlayRequested\ =\ \textcolor{keyword}{false};}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (mSbmPlayer\ !=\ \textcolor{keyword}{null})\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ mSbmPlayer.release();}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ mSbmPlayer\ =\ \textcolor{keyword}{null};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \}}
\DoxyCodeLine{\}}

\end{DoxyCode}
 

\doxysubsection{Member Function Documentation}
\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a05466d4b4641533a8fa03cd7424f3e13}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a05466d4b4641533a8fa03cd7424f3e13} 
\index{com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}!generateSbmId@{generateSbmId}}
\index{generateSbmId@{generateSbmId}!com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}}
\doxysubsubsection{\texorpdfstring{generateSbmId()}{generateSbmId()}}
{\footnotesize\ttfamily static String com.\+tritondigital.\+player.\+Sbm\+Player.\+generate\+Sbm\+Id (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Generates a Side-\/\+Band Metadata session ID. 

The same session ID ({\bfseries{sbmid}}) must be provided to the audio URL and SBM URL parameters. \Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_af6e7d3de2f2e7d481f084cbce18a0566}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_af6e7d3de2f2e7d481f084cbce18a0566} 
\index{com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}!getDuration@{getDuration}}
\index{getDuration@{getDuration}!com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}}
\doxysubsubsection{\texorpdfstring{getDuration()}{getDuration()}}
{\footnotesize\ttfamily int com.\+tritondigital.\+player.\+Sbm\+Player.\+get\+Duration (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Reimplemented from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer_a7f28cdc04551b40058a44a4bcfa35ef5}{com.\+tritondigital.\+player.\+Media\+Player}}.

\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a54e7c52a23ecf8700bfdc1b9352cab54}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a54e7c52a23ecf8700bfdc1b9352cab54} 
\index{com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}!getPosition@{getPosition}}
\index{getPosition@{getPosition}!com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}}
\doxysubsubsection{\texorpdfstring{getPosition()}{getPosition()}}
{\footnotesize\ttfamily int com.\+tritondigital.\+player.\+Sbm\+Player.\+get\+Position (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Reimplemented from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer_aa3c9bebfa25eb07fdd75ea5506a27cf3}{com.\+tritondigital.\+player.\+Media\+Player}}.

\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a5b4c1cdf7730a57d9ea1f3b682ac8584}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a5b4c1cdf7730a57d9ea1f3b682ac8584} 
\index{com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}!getVolume@{getVolume}}
\index{getVolume@{getVolume}!com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}}
\doxysubsubsection{\texorpdfstring{getVolume()}{getVolume()}}
{\footnotesize\ttfamily float com.\+tritondigital.\+player.\+Sbm\+Player.\+get\+Volume (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Reimplemented from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer_af46cf8d8704088df27231490670b4703}{com.\+tritondigital.\+player.\+Media\+Player}}.

\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a08dbffa5068c8eab9742b9fb3d38b479}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a08dbffa5068c8eab9742b9fb3d38b479} 
\index{com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}!internalChangeSpeed@{internalChangeSpeed}}
\index{internalChangeSpeed@{internalChangeSpeed}!com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}}
\doxysubsubsection{\texorpdfstring{internalChangeSpeed()}{internalChangeSpeed()}}
{\footnotesize\ttfamily void com.\+tritondigital.\+player.\+Sbm\+Player.\+internal\+Change\+Speed (\begin{DoxyParamCaption}\item[{Float}]{speed }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Reimplemented from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer}{com.\+tritondigital.\+player.\+Media\+Player}}.

\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a4b8ca49276352cabcd2cd108578b0457}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a4b8ca49276352cabcd2cd108578b0457} 
\index{com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}!internalGetCloudStreamInfo@{internalGetCloudStreamInfo}}
\index{internalGetCloudStreamInfo@{internalGetCloudStreamInfo}!com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}}
\doxysubsubsection{\texorpdfstring{internalGetCloudStreamInfo()}{internalGetCloudStreamInfo()}}
{\footnotesize\ttfamily void com.\+tritondigital.\+player.\+Sbm\+Player.\+internal\+Get\+Cloud\+Stream\+Info (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Reimplemented from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer}{com.\+tritondigital.\+player.\+Media\+Player}}.

\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a004051980f6a8530e5d1ca2b1453717c}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a004051980f6a8530e5d1ca2b1453717c} 
\index{com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}!internalPause@{internalPause}}
\index{internalPause@{internalPause}!com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}}
\doxysubsubsection{\texorpdfstring{internalPause()}{internalPause()}}
{\footnotesize\ttfamily void com.\+tritondigital.\+player.\+Sbm\+Player.\+internal\+Pause (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Reimplemented from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer}{com.\+tritondigital.\+player.\+Media\+Player}}.

\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a8d6e72a0d2ccb3b8e6feacd509a359cc}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a8d6e72a0d2ccb3b8e6feacd509a359cc} 
\index{com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}!internalPlay@{internalPlay}}
\index{internalPlay@{internalPlay}!com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}}
\doxysubsubsection{\texorpdfstring{internalPlay()}{internalPlay()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void com.\+tritondigital.\+player.\+Sbm\+Player.\+internal\+Play (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Reimplemented from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer}{com.\+tritondigital.\+player.\+Media\+Player}}.

\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_ac1ae827543fe8764ec0a5b00a5f3bed7}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_ac1ae827543fe8764ec0a5b00a5f3bed7} 
\index{com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}!internalPlay@{internalPlay}}
\index{internalPlay@{internalPlay}!com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}}
\doxysubsubsection{\texorpdfstring{internalPlay()}{internalPlay()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void com.\+tritondigital.\+player.\+Sbm\+Player.\+internal\+Play (\begin{DoxyParamCaption}\item[{boolean}]{timeshift\+Streaming }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Reimplemented from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer}{com.\+tritondigital.\+player.\+Media\+Player}}.

\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a1fc35dcc9f5add45ff09a9bdd8b67027}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a1fc35dcc9f5add45ff09a9bdd8b67027} 
\index{com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}!internalPlayProgram@{internalPlayProgram}}
\index{internalPlayProgram@{internalPlayProgram}!com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}}
\doxysubsubsection{\texorpdfstring{internalPlayProgram()}{internalPlayProgram()}}
{\footnotesize\ttfamily void com.\+tritondigital.\+player.\+Sbm\+Player.\+internal\+Play\+Program (\begin{DoxyParamCaption}\item[{String}]{program\+Id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Reimplemented from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer}{com.\+tritondigital.\+player.\+Media\+Player}}.

\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_aac2bdc174109f68f843b1988b6822880}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_aac2bdc174109f68f843b1988b6822880} 
\index{com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}!internalRelease@{internalRelease}}
\index{internalRelease@{internalRelease}!com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}}
\doxysubsubsection{\texorpdfstring{internalRelease()}{internalRelease()}}
{\footnotesize\ttfamily void com.\+tritondigital.\+player.\+Sbm\+Player.\+internal\+Release (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Reimplemented from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer}{com.\+tritondigital.\+player.\+Media\+Player}}.

\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a9ace6a957c73ad1e22a388cbb1b71806}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a9ace6a957c73ad1e22a388cbb1b71806} 
\index{com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}!internalSeekTo@{internalSeekTo}}
\index{internalSeekTo@{internalSeekTo}!com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}}
\doxysubsubsection{\texorpdfstring{internalSeekTo()}{internalSeekTo()}}
{\footnotesize\ttfamily void com.\+tritondigital.\+player.\+Sbm\+Player.\+internal\+Seek\+To (\begin{DoxyParamCaption}\item[{int}]{position,  }\item[{int}]{original }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Reimplemented from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer}{com.\+tritondigital.\+player.\+Media\+Player}}.

\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_ac6636e6f06e06bed15964fced98fd7b9}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_ac6636e6f06e06bed15964fced98fd7b9} 
\index{com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}!internalStop@{internalStop}}
\index{internalStop@{internalStop}!com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}}
\doxysubsubsection{\texorpdfstring{internalStop()}{internalStop()}}
{\footnotesize\ttfamily void com.\+tritondigital.\+player.\+Sbm\+Player.\+internal\+Stop (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Reimplemented from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer}{com.\+tritondigital.\+player.\+Media\+Player}}.

\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a4c60ca792d8e9462d2c0cec4795ed758}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a4c60ca792d8e9462d2c0cec4795ed758} 
\index{com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}!isEventLoggingEnabled@{isEventLoggingEnabled}}
\index{isEventLoggingEnabled@{isEventLoggingEnabled}!com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}}
\doxysubsubsection{\texorpdfstring{isEventLoggingEnabled()}{isEventLoggingEnabled()}}
{\footnotesize\ttfamily boolean com.\+tritondigital.\+player.\+Sbm\+Player.\+is\+Event\+Logging\+Enabled (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Reimplemented from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer}{com.\+tritondigital.\+player.\+Media\+Player}}.

\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_ad2f5efe4507b6083a6a5ee0730dc1981}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_ad2f5efe4507b6083a6a5ee0730dc1981} 
\index{com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}!isPausable@{isPausable}}
\index{isPausable@{isPausable}!com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}}
\doxysubsubsection{\texorpdfstring{isPausable()}{isPausable()}}
{\footnotesize\ttfamily boolean com.\+tritondigital.\+player.\+Sbm\+Player.\+is\+Pausable (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Reimplemented from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer_a9cd17f8815530593ef302b8e2a2e08f8}{com.\+tritondigital.\+player.\+Media\+Player}}.

\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_aceb93419d428500ff0458f9c83809920}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_aceb93419d428500ff0458f9c83809920} 
\index{com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}!isSeekable@{isSeekable}}
\index{isSeekable@{isSeekable}!com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}}
\doxysubsubsection{\texorpdfstring{isSeekable()}{isSeekable()}}
{\footnotesize\ttfamily boolean com.\+tritondigital.\+player.\+Sbm\+Player.\+is\+Seekable (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Reimplemented from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer_a9211c666e7b048430b6d2e1b97fc5768}{com.\+tritondigital.\+player.\+Media\+Player}}.

\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a484392faa3f689d9391498e4c4373330}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a484392faa3f689d9391498e4c4373330} 
\index{com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}!isTimeshiftStreaming@{isTimeshiftStreaming}}
\index{isTimeshiftStreaming@{isTimeshiftStreaming}!com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}}
\doxysubsubsection{\texorpdfstring{isTimeshiftStreaming()}{isTimeshiftStreaming()}}
{\footnotesize\ttfamily boolean com.\+tritondigital.\+player.\+Sbm\+Player.\+is\+Timeshift\+Streaming (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Reimplemented from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer_a848e4c2cb9593b1dae548809e30cc648}{com.\+tritondigital.\+player.\+Media\+Player}}.

\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a552c8f490da29dde63de670214ce5585}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a552c8f490da29dde63de670214ce5585} 
\index{com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}!makeTag@{makeTag}}
\index{makeTag@{makeTag}!com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}}
\doxysubsubsection{\texorpdfstring{makeTag()}{makeTag()}}
{\footnotesize\ttfamily String com.\+tritondigital.\+player.\+Sbm\+Player.\+make\+Tag (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Reimplemented from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer}{com.\+tritondigital.\+player.\+Media\+Player}}.

\Hypertarget{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a834ca48f2c9a7d025d3cb997f71cd5b5}\label{classcom_1_1tritondigital_1_1player_1_1SbmPlayer_a834ca48f2c9a7d025d3cb997f71cd5b5} 
\index{com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}!setVolume@{setVolume}}
\index{setVolume@{setVolume}!com.tritondigital.player.SbmPlayer@{com.tritondigital.player.SbmPlayer}}
\doxysubsubsection{\texorpdfstring{setVolume()}{setVolume()}}
{\footnotesize\ttfamily void com.\+tritondigital.\+player.\+Sbm\+Player.\+set\+Volume (\begin{DoxyParamCaption}\item[{float}]{volume }\end{DoxyParamCaption})}



Reimplemented from \mbox{\hyperlink{classcom_1_1tritondigital_1_1player_1_1MediaPlayer_a9dc760e46125b273ce80f4cd0a6267c7}{com.\+tritondigital.\+player.\+Media\+Player}}.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
player/src/main/java/com/tritondigital/player/Sbm\+Player.\+java\end{DoxyCompactItemize}
