-
- All Implemented Interfaces:
-
com.google.android.exoplayer2.Player.EventListener
public class ExoMediaPlayer implements Player.EventListener
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classExoMediaPlayer.ExoPlayerRendererTracksInfo
-
Field Summary
Fields Modifier and Type Field Description private Surfacesurfaceprivate MediaDrmCallbackdrmCallbackprivate MediaSourcemediaSourceprivate CaptionListenercaptionListenerprivate MetadataListenermetadataListenerprivate OnBufferUpdateListenerbufferUpdateListenerprivate intaudioSessionIdprivate AnalyticsCollectoranalyticsCollector
-
Constructor Summary
Constructors Constructor Description ExoMediaPlayer(Context context)
-
Method Summary
Modifier and Type Method Description voidonPlayerStateChanged(boolean playWhenReady, int state)voidonPlayerError(ExoPlaybackException exception)voidsetUri(Uri uri)voidaddListener(ExoPlayerListener listener)voidremoveListener(ExoPlayerListener listener)ExoPlayergetExoPlayer()voidaddAnalyticsListener(AnalyticsListener listener)Adds an AnalyticsListener to receive analytics events. voidremoveAnalyticsListener(AnalyticsListener listener)Removes an AnalyticsListener. voidclearSurface()voidblockingClearSurface()Map<ExoMedia.RendererType, TrackGroupArray>getAvailableTracks()Retrieves a list of available tracks intgetSelectedTrackIndex(ExoMedia.RendererType type)intgetSelectedTrackIndex(ExoMedia.RendererType type, int groupIndex)voidsetSelectedTrack(ExoMedia.RendererType type, int index)voidsetSelectedTrack(ExoMedia.RendererType type, int groupIndex, int trackIndex)voidclearSelectedTracks(ExoMedia.RendererType type)Clear all selected tracks for the specified renderer and re-enable all renderers so the player can select the default track. voidsetRendererEnabled(ExoMedia.RendererType type, boolean enabled)booleanisRendererEnabled(ExoMedia.RendererType type)Return true if at least one renderer for the given type is enabled floatgetVolume()voidsetVolume(float volume)voidsetAudioStreamType(int streamType)voidforcePrepare()voidprepare()voidstop()voidseekTo(long positionMs)voidseekTo(long positionMs, boolean limitToCurrentWindow)TODO: Expose thisSeeks to the specified position in the media currently loaded specified by positionMs.booleanrestart()Seeks to the beginning of the media, and plays it. voidrelease()intgetPlaybackState()booleansetPlaybackSpeed(float speed)floatgetPlaybackSpeed()longgetCurrentPosition()longgetCurrentPosition(boolean limitToCurrentWindow)TODO: Expose thisReturns the position in the media. longgetDuration()intgetBufferedPercentage()WindowInfogetWindowInfo()booleangetPlayWhenReady()voidsetPlayWhenReady(boolean playWhenReady)voidsetWakeMode(Context context, int mode)This function has the MediaPlayer access the low-level power managerservice to control the device's power usage while playing is occurring. voidsetRepeatMode(int repeatMode)SurfacegetSurface()intgetAudioSessionId()AnalyticsCollectorgetAnalyticsCollector()Returns the AnalyticsCollector used for collecting analytics events. voidsetSurface(Surface surface)voidsetDrmCallback(MediaDrmCallback drmCallback)Sets the MediaDrmCallback to use when handling DRM for media. voidsetMediaSource(MediaSource source)voidsetCaptionListener(CaptionListener listener)voidsetMetadataListener(MetadataListener listener)voidsetBufferUpdateListener(OnBufferUpdateListener listener)-
Methods inherited from class com.google.android.exoplayer2.Player.EventListener
onExperimentalOffloadSchedulingEnabledChanged, onIsLoadingChanged, onIsPlayingChanged, onLoadingChanged, onMediaItemTransition, onPlayWhenReadyChanged, onPlaybackParametersChanged, onPlaybackStateChanged, onPlaybackSuppressionReasonChanged, onPlayerError, onPlayerStateChanged, onPositionDiscontinuity, onRepeatModeChanged, onSeekProcessed, onShuffleModeEnabledChanged, onTimelineChanged, onTracksChanged -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
Constructor Detail
-
ExoMediaPlayer
ExoMediaPlayer(Context context)
-
-
Method Detail
-
onPlayerStateChanged
void onPlayerStateChanged(boolean playWhenReady, int state)
-
onPlayerError
void onPlayerError(ExoPlaybackException exception)
-
addListener
void addListener(ExoPlayerListener listener)
-
removeListener
void removeListener(ExoPlayerListener listener)
-
getExoPlayer
@NonNull() ExoPlayer getExoPlayer()
-
addAnalyticsListener
void addAnalyticsListener(AnalyticsListener listener)
Adds an AnalyticsListener to receive analytics events.
- Parameters:
listener- The listener to be added.
-
removeAnalyticsListener
void removeAnalyticsListener(AnalyticsListener listener)
Removes an AnalyticsListener.
- Parameters:
listener- The listener to be removed.
-
clearSurface
void clearSurface()
-
blockingClearSurface
@Deprecated() void blockingClearSurface()
-
getAvailableTracks
@Nullable() Map<ExoMedia.RendererType, TrackGroupArray> getAvailableTracks()
Retrieves a list of available tracks
-
getSelectedTrackIndex
int getSelectedTrackIndex(ExoMedia.RendererType type)
-
getSelectedTrackIndex
int getSelectedTrackIndex(ExoMedia.RendererType type, int groupIndex)
-
setSelectedTrack
@Deprecated() void setSelectedTrack(ExoMedia.RendererType type, int index)
-
setSelectedTrack
void setSelectedTrack(ExoMedia.RendererType type, int groupIndex, int trackIndex)
-
clearSelectedTracks
void clearSelectedTracks(ExoMedia.RendererType type)
Clear all selected tracks for the specified renderer and re-enable all renderers so the player can select the default track.
- Parameters:
type- The renderer type
-
setRendererEnabled
void setRendererEnabled(ExoMedia.RendererType type, boolean enabled)
-
isRendererEnabled
boolean isRendererEnabled(ExoMedia.RendererType type)
Return true if at least one renderer for the given type is enabled
- Parameters:
type- The renderer type
-
getVolume
float getVolume()
-
setVolume
void setVolume(float volume)
-
setAudioStreamType
void setAudioStreamType(int streamType)
-
forcePrepare
void forcePrepare()
-
prepare
void prepare()
-
stop
void stop()
-
seekTo
void seekTo(long positionMs)
-
seekTo
void seekTo(long positionMs, boolean limitToCurrentWindow)
TODO: Expose thisSeeks to the specified position in the media currently loaded specified by
positionMs.IflimitToCurrentWindowis true then a seek won't be allowed to span across windows.This should only be different if the media in playback has multiple windows (e.g. in the case of using aConcatenatingMediaSourcewith more than 1 source)- Parameters:
positionMs- The position to seek to in the medialimitToCurrentWindow-trueto only seek in the current window
-
restart
boolean restart()
Seeks to the beginning of the media, and plays it. This method will not succeed if playback state is not
{@code ExoPlayer.STATE_IDLE}or{@code ExoPlayer.STATE_ENDED}.
-
release
void release()
-
getPlaybackState
int getPlaybackState()
-
setPlaybackSpeed
boolean setPlaybackSpeed(float speed)
-
getPlaybackSpeed
float getPlaybackSpeed()
-
getCurrentPosition
long getCurrentPosition()
-
getCurrentPosition
long getCurrentPosition(boolean limitToCurrentWindow)
TODO: Expose thisReturns the position in the media. If
limitToCurrentWindowistruethen the positionin the current window will be returned, otherwise the total position across all windows will be returned.These should only be different if the media in playback has multiple windows (e.g. in the case of using aConcatenatingMediaSourcewith more than 1 source)- Parameters:
limitToCurrentWindow- Iftruethe position within the current window will be returned
-
getDuration
long getDuration()
-
getBufferedPercentage
int getBufferedPercentage()
-
getWindowInfo
@Nullable() WindowInfo getWindowInfo()
-
getPlayWhenReady
boolean getPlayWhenReady()
-
setPlayWhenReady
void setPlayWhenReady(boolean playWhenReady)
-
setWakeMode
void setWakeMode(Context context, int mode)
This function has the MediaPlayer access the low-level power managerservice to control the device's power usage while playing is occurring.The parameter is a combination of android.os.PowerManager wake flags.Use of this method requires WAKE_LOCK permission.By default, no attempt is made to keep the device awake during playback.
- Parameters:
context- the Context to usemode- the power/wake mode to set
-
setRepeatMode
void setRepeatMode(int repeatMode)
-
getSurface
@Nullable() Surface getSurface()
-
getAudioSessionId
int getAudioSessionId()
-
getAnalyticsCollector
@NonNull() AnalyticsCollector getAnalyticsCollector()
Returns the AnalyticsCollector used for collecting analytics events.
-
setSurface
void setSurface(Surface surface)
-
setDrmCallback
void setDrmCallback(MediaDrmCallback drmCallback)
Sets the MediaDrmCallback to use when handling DRM for media.This should be called before specifying the videos uri or pathNOTE: DRM is only supported on API 18 +
- Parameters:
drmCallback- The callback to use when handling DRM media
-
setMediaSource
void setMediaSource(MediaSource source)
-
setCaptionListener
void setCaptionListener(CaptionListener listener)
-
setMetadataListener
void setMetadataListener(MetadataListener listener)
-
setBufferUpdateListener
void setBufferUpdateListener(OnBufferUpdateListener listener)
-
-
-
-