public class ExoMediaPlayer
extends Player.DefaultEventListener
| Modifier and Type | Field and Description |
|---|---|
protected float |
requestedVolume |
| Constructor and Description |
|---|
ExoMediaPlayer(android.content.Context context) |
| Modifier and Type | Method and Description |
|---|---|
void |
addAnalyticsListener(AnalyticsListener listener)
Adds an
AnalyticsListener to receive analytics events. |
void |
addListener(ExoPlayerListener listener) |
void |
blockingClearSurface()
Deprecated.
use
clearSurface() as this is no longer blocking |
protected void |
blockingSendMessages(java.util.List<PlayerMessage> messages)
This was pulled from the Deprecated ExoPlayerImpl#blockingSendMessages method
|
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.
|
void |
clearSurface() |
void |
forcePrepare() |
protected <any> |
generateDrmSessionManager()
Generates the
DrmSessionManager to use with the RendererProvider. |
AnalyticsCollector |
getAnalyticsCollector()
Returns the
AnalyticsCollector used for collecting analytics events. |
int |
getAudioSessionId() |
java.util.Map<ExoMedia.RendererType,TrackGroupArray> |
getAvailableTracks()
Retrieves a list of available tracks
|
BandwidthMeter |
getBandwidthMeter() |
int |
getBufferedPercentage() |
long |
getCurrentPosition() |
long |
getCurrentPosition(boolean limitToCurrentWindow)
TODO: Expose this
Returns the position in the media.
|
long |
getDuration() |
protected ExoMedia.RendererType |
getExoMediaRendererType(int exoPlayerTrackType) |
ExoPlayer |
getExoPlayer() |
protected com.devbrackets.android.exomedia.core.exoplayer.ExoMediaPlayer.ExoPlayerRendererTracksInfo |
getExoPlayerTracksInfo(ExoMedia.RendererType type,
int groupIndex,
MappingTrackSelector.MappedTrackInfo mappedTrackInfo) |
protected int |
getExoPlayerTrackType(ExoMedia.RendererType type) |
float |
getPlaybackSpeed() |
int |
getPlaybackState() |
boolean |
getPlayWhenReady() |
int |
getSelectedTrackIndex(ExoMedia.RendererType type)
Deprecated.
Use
#getSelectedTrackIndex(RendererType, int) |
int |
getSelectedTrackIndex(ExoMedia.RendererType type,
int groupIndex) |
android.view.Surface |
getSurface() |
float |
getVolume() |
WindowInfo |
getWindowInfo() |
boolean |
isRendererEnabled(ExoMedia.RendererType type)
Return true if at least one renderer for the given type is enabled
|
void |
onPlayerError(ExoPlaybackException exception) |
void |
onPlayerStateChanged(boolean playWhenReady,
int state) |
void |
prepare() |
void |
release() |
void |
removeAnalyticsListener(AnalyticsListener listener)
Removes an
AnalyticsListener. |
void |
removeListener(ExoPlayerListener listener) |
boolean |
restart()
Seeks to the beginning of the media, and plays it.
|
void |
seekTo(long positionMs) |
void |
seekTo(long positionMs,
boolean limitToCurrentWindow)
TODO: Expose this
Seeks to the specified position in the media currently loaded specified by
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 |
setAudioStreamType(int streamType) |
void |
setBufferUpdateListener(OnBufferUpdateListener listener) |
void |
setCaptionListener(CaptionListener listener) |
void |
setDrmCallback(MediaDrmCallback drmCallback)
Sets the
MediaDrmCallback to use when handling DRM for media. |
void |
setInternalErrorListener(InternalErrorListener listener) |
void |
setMediaSource(MediaSource source) |
void |
setMetadataListener(MetadataListener listener) |
boolean |
setPlaybackSpeed(float speed) |
void |
setPlayWhenReady(boolean playWhenReady) |
void |
setRendererEnabled(ExoMedia.RendererType type,
boolean enabled) |
void |
setRepeatMode(int repeatMode) |
void |
setSelectedTrack(ExoMedia.RendererType type,
int index)
Deprecated.
Use
#setSelectedTrack(RendererType, int, int) |
void |
setSelectedTrack(ExoMedia.RendererType type,
int groupIndex,
int trackIndex) |
void |
setSurface(android.view.Surface surface) |
protected void |
setupDamSessionManagerAnalytics(<any> drmSessionManager) |
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 onPlayerStateChanged(boolean playWhenReady,
int state)
public void onPlayerError(ExoPlaybackException exception)
public void setDrmCallback(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(android.net.Uri uri)
public void setMediaSource(MediaSource source)
public void addListener(ExoPlayerListener listener)
public void removeListener(ExoPlayerListener listener)
public void setBufferUpdateListener(OnBufferUpdateListener listener)
public void setInternalErrorListener(InternalErrorListener listener)
public void setCaptionListener(CaptionListener listener)
public void setMetadataListener(MetadataListener listener)
public void setSurface(android.view.Surface surface)
public android.view.Surface getSurface()
public ExoPlayer getExoPlayer()
public BandwidthMeter getBandwidthMeter()
public AnalyticsCollector getAnalyticsCollector()
AnalyticsCollector used for collecting analytics events.public void addAnalyticsListener(AnalyticsListener listener)
AnalyticsListener to receive analytics events.listener - The listener to be added.public void removeAnalyticsListener(AnalyticsListener listener)
AnalyticsListener.listener - The listener to be removed.public void clearSurface()
@Deprecated public void blockingClearSurface()
clearSurface() as this is no longer blockingpublic java.util.Map<ExoMedia.RendererType,TrackGroupArray> getAvailableTracks()
public int getSelectedTrackIndex(ExoMedia.RendererType type)
#getSelectedTrackIndex(RendererType, int)public int getSelectedTrackIndex(ExoMedia.RendererType type, int groupIndex)
@Deprecated public void setSelectedTrack(ExoMedia.RendererType type, int index)
#setSelectedTrack(RendererType, int, int)public void setSelectedTrack(ExoMedia.RendererType type, int groupIndex, int trackIndex)
public void clearSelectedTracks(ExoMedia.RendererType type)
type - The renderer typepublic void setRendererEnabled(ExoMedia.RendererType type, boolean enabled)
public boolean isRendererEnabled(ExoMedia.RendererType type)
type - The renderer typepublic void setVolume(float volume)
public float getVolume()
public void setAudioStreamType(int streamType)
public void forcePrepare()
public void prepare()
public void stop()
public void setPlayWhenReady(boolean playWhenReady)
public void seekTo(long positionMs)
public void seekTo(long positionMs,
boolean limitToCurrentWindow)
positionMs.
If limitToCurrentWindow is 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 a
ConcatenatingMediaSource with more than 1 source)positionMs - The position to seek to in the medialimitToCurrentWindow - true to only seek in the current windowpublic boolean restart()
ExoPlayer.STATE_IDLE or ExoPlayer.STATE_ENDED.true if the media was successfully restarted, otherwise falsepublic void release()
public int getPlaybackState()
public int getAudioSessionId()
public boolean setPlaybackSpeed(float speed)
public float getPlaybackSpeed()
public long getCurrentPosition()
public long getCurrentPosition(boolean limitToCurrentWindow)
limitToCurrentWindow is true then the position
in 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 a
ConcatenatingMediaSource with more than 1 source)limitToCurrentWindow - If true the position within the current window will be returnedpublic long getDuration()
public int getBufferedPercentage()
public WindowInfo getWindowInfo()
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 setPowerManagerpublic void setRepeatMode(int repeatMode)
protected int getExoPlayerTrackType(ExoMedia.RendererType type)
protected ExoMedia.RendererType getExoMediaRendererType(int exoPlayerTrackType)
protected com.devbrackets.android.exomedia.core.exoplayer.ExoMediaPlayer.ExoPlayerRendererTracksInfo getExoPlayerTracksInfo(ExoMedia.RendererType type, int groupIndex, MappingTrackSelector.MappedTrackInfo mappedTrackInfo)
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 blockingSendMessages(java.util.List<PlayerMessage> messages)
messages - The messagesprotected 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 acquiredprotected <any> generateDrmSessionManager()
DrmSessionManager to use with the RendererProvider. This will
return null on API's < DrmSessionManager to use or nullprotected void setupDamSessionManagerAnalytics(<any> drmSessionManager)