public class ExoMediaPlayer
extends java.lang.Object
implements com.google.android.exoplayer2.ExoPlayer.EventListener
Constructor and Description |
---|
ExoMediaPlayer(android.content.Context context) |
Modifier and Type | Method and Description |
---|---|
void |
addListener(ExoPlayerListener listener) |
void |
blockingClearSurface() |
void |
forcePrepare() |
protected com.google.android.exoplayer2.drm.DrmSessionManager<com.google.android.exoplayer2.drm.FrameworkMediaCrypto> |
generateDrmSessionManager()
Generates the
DrmSessionManager to use with the RendererProvider . |
int |
getAudioSessionId() |
java.util.Map<ExoMedia.RendererType,com.google.android.exoplayer2.source.TrackGroupArray> |
getAvailableTracks()
Retrieves a list of available tracks
|
int |
getBufferedPercentage() |
long |
getCurrentPosition() |
long |
getDuration() |
protected int |
getExoPlayerTrackType(ExoMedia.RendererType type) |
int |
getPlaybackState() |
boolean |
getPlayWhenReady() |
int |
getSelectedTrackIndex(ExoMedia.RendererType type) |
android.view.Surface |
getSurface() |
void |
onLoadingChanged(boolean isLoading) |
void |
onPlaybackParametersChanged(com.google.android.exoplayer2.PlaybackParameters playbackParameters) |
void |
onPlayerError(com.google.android.exoplayer2.ExoPlaybackException exception) |
void |
onPlayerStateChanged(boolean playWhenReady,
int state) |
void |
onPositionDiscontinuity() |
void |
onTimelineChanged(com.google.android.exoplayer2.Timeline timeline,
java.lang.Object manifest) |
void |
onTracksChanged(com.google.android.exoplayer2.source.TrackGroupArray trackGroups,
com.google.android.exoplayer2.trackselection.TrackSelectionArray trackSelections) |
void |
prepare() |
void |
release() |
void |
removeListener(ExoPlayerListener listener) |
boolean |
restart()
Seeks to the beginning of the media, and plays it.
|
void |
seekTo(long positionMs) |
protected void |
sendMessage(int renderType,
int messageType,
java.lang.Object message) |
protected void |
sendMessage(int renderType,
int messageType,
java.lang.Object message,
boolean blocking) |
void |
setBufferUpdateListener(OnBufferUpdateListener listener) |
void |
setCaptionListener(CaptionListener listener) |
void |
setDrmCallback(com.google.android.exoplayer2.drm.MediaDrmCallback drmCallback)
Sets the
MediaDrmCallback to use when handling DRM for media. |
void |
setInternalErrorListener(InternalErrorListener listener) |
void |
setMediaSource(com.google.android.exoplayer2.source.MediaSource source) |
void |
setMetadataListener(MetadataListener listener) |
boolean |
setPlaybackSpeed(float speed) |
void |
setPlayWhenReady(boolean playWhenReady) |
void |
setSelectedTrack(ExoMedia.RendererType type,
int index) |
void |
setSurface(android.view.Surface surface) |
void |
setUri(android.net.Uri uri) |
void |
setVolume(float volume) |
void |
setWakeMode(android.content.Context context,
int mode)
This function has the MediaPlayer access the low-level power manager
service to control the device's power usage while playing is occurring.
|
protected void |
stayAwake(boolean awake)
Used with playback state changes to correctly acquire and
release the wakelock if the user has enabled it with
setWakeMode(Context, int) . |
void |
stop() |
public void onTimelineChanged(com.google.android.exoplayer2.Timeline timeline, java.lang.Object manifest)
onTimelineChanged
in interface com.google.android.exoplayer2.ExoPlayer.EventListener
public void onTracksChanged(com.google.android.exoplayer2.source.TrackGroupArray trackGroups, com.google.android.exoplayer2.trackselection.TrackSelectionArray trackSelections)
onTracksChanged
in interface com.google.android.exoplayer2.ExoPlayer.EventListener
public void onLoadingChanged(boolean isLoading)
onLoadingChanged
in interface com.google.android.exoplayer2.ExoPlayer.EventListener
public void onPositionDiscontinuity()
onPositionDiscontinuity
in interface com.google.android.exoplayer2.ExoPlayer.EventListener
public void onPlaybackParametersChanged(com.google.android.exoplayer2.PlaybackParameters playbackParameters)
onPlaybackParametersChanged
in interface com.google.android.exoplayer2.ExoPlayer.EventListener
public void onPlayerStateChanged(boolean playWhenReady, int state)
onPlayerStateChanged
in interface com.google.android.exoplayer2.ExoPlayer.EventListener
public void onPlayerError(com.google.android.exoplayer2.ExoPlaybackException exception)
onPlayerError
in interface com.google.android.exoplayer2.ExoPlayer.EventListener
public void setDrmCallback(@Nullable com.google.android.exoplayer2.drm.MediaDrmCallback drmCallback)
MediaDrmCallback
to use when handling DRM for media.
This should be called before specifying the videos uri or path
drmCallback
- The callback to use when handling DRM mediapublic void setUri(@Nullable android.net.Uri uri)
public void setMediaSource(@Nullable com.google.android.exoplayer2.source.MediaSource source)
public void addListener(ExoPlayerListener listener)
public void removeListener(ExoPlayerListener listener)
public void setBufferUpdateListener(@Nullable OnBufferUpdateListener listener)
public void setInternalErrorListener(@Nullable InternalErrorListener listener)
public void setCaptionListener(@Nullable CaptionListener listener)
public void setMetadataListener(@Nullable MetadataListener listener)
public void setSurface(@Nullable android.view.Surface surface)
@Nullable public android.view.Surface getSurface()
public void blockingClearSurface()
@Nullable public java.util.Map<ExoMedia.RendererType,com.google.android.exoplayer2.source.TrackGroupArray> getAvailableTracks()
public int getSelectedTrackIndex(@NonNull ExoMedia.RendererType type)
public void setSelectedTrack(@NonNull ExoMedia.RendererType type, int index)
public void setVolume(float volume)
public void forcePrepare()
public void prepare()
public void stop()
public void setPlayWhenReady(boolean playWhenReady)
public void seekTo(long positionMs)
public boolean restart()
ExoPlayer.STATE_IDLE
or ExoPlayer.STATE_ENDED
.true
if the media was successfully restarted, otherwise false
public void release()
public int getPlaybackState()
public int getAudioSessionId()
public boolean setPlaybackSpeed(float speed)
public long getCurrentPosition()
public long getDuration()
public int getBufferedPercentage()
public boolean getPlayWhenReady()
public void setWakeMode(android.content.Context context, int mode)
PowerManager
wake flags.
Use of this method requires Manifest.permission.WAKE_LOCK
permission.
By default, no attempt is made to keep the device awake during playback.context
- the Context to usemode
- the power/wake mode to setPowerManager
protected int getExoPlayerTrackType(@NonNull ExoMedia.RendererType type)
protected void sendMessage(int renderType, int messageType, java.lang.Object message)
protected void sendMessage(int renderType, int messageType, java.lang.Object message, boolean blocking)
protected void stayAwake(boolean awake)
setWakeMode(Context, int)
.
If the wakeLock
is null then no action will be performed.awake
- True if the wakelock should be acquired@Nullable protected com.google.android.exoplayer2.drm.DrmSessionManager<com.google.android.exoplayer2.drm.FrameworkMediaCrypto> generateDrmSessionManager()
DrmSessionManager
to use with the RendererProvider
. This will
return null on API's < DrmSessionManager
to use or null