Class BasePlayer
- java.lang.Object
-
- com.google.android.exoplayer2.BasePlayer
-
- All Implemented Interfaces:
Player
- Direct Known Subclasses:
CastPlayer
,SimpleExoPlayer
,StubPlayer
public abstract class BasePlayer extends Object implements Player
Abstract basePlayer
which implements common implementation independent methods.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.google.android.exoplayer2.Player
Player.Command, Player.Commands, Player.DiscontinuityReason, Player.Event, Player.EventListener, Player.Events, Player.Listener, Player.MediaItemTransitionReason, Player.PlaybackSuppressionReason, Player.PlayWhenReadyChangeReason, Player.PositionInfo, Player.RepeatMode, Player.State, Player.TimelineChangeReason
-
-
Field Summary
Fields Modifier and Type Field Description protected Timeline.Window
window
-
Fields inherited from interface com.google.android.exoplayer2.Player
COMMAND_ADJUST_DEVICE_VOLUME, COMMAND_CHANGE_MEDIA_ITEMS, COMMAND_GET_AUDIO_ATTRIBUTES, COMMAND_GET_CURRENT_MEDIA_ITEM, COMMAND_GET_DEVICE_VOLUME, COMMAND_GET_MEDIA_ITEMS_METADATA, COMMAND_GET_TEXT, COMMAND_GET_TIMELINE, COMMAND_GET_TRACK_INFOS, COMMAND_GET_VOLUME, COMMAND_INVALID, COMMAND_PLAY_PAUSE, COMMAND_PREPARE, COMMAND_SEEK_BACK, COMMAND_SEEK_FORWARD, COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM, COMMAND_SEEK_IN_CURRENT_WINDOW, COMMAND_SEEK_TO_DEFAULT_POSITION, COMMAND_SEEK_TO_MEDIA_ITEM, COMMAND_SEEK_TO_NEXT, COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, COMMAND_SEEK_TO_NEXT_WINDOW, COMMAND_SEEK_TO_PREVIOUS, COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM, COMMAND_SEEK_TO_PREVIOUS_WINDOW, COMMAND_SEEK_TO_WINDOW, COMMAND_SET_DEVICE_VOLUME, COMMAND_SET_MEDIA_ITEMS_METADATA, COMMAND_SET_REPEAT_MODE, COMMAND_SET_SHUFFLE_MODE, COMMAND_SET_SPEED_AND_PITCH, COMMAND_SET_TRACK_SELECTION_PARAMETERS, COMMAND_SET_VIDEO_SURFACE, COMMAND_SET_VOLUME, COMMAND_STOP, DISCONTINUITY_REASON_AUTO_TRANSITION, DISCONTINUITY_REASON_INTERNAL, DISCONTINUITY_REASON_REMOVE, DISCONTINUITY_REASON_SEEK, DISCONTINUITY_REASON_SEEK_ADJUSTMENT, DISCONTINUITY_REASON_SKIP, EVENT_AVAILABLE_COMMANDS_CHANGED, EVENT_IS_LOADING_CHANGED, EVENT_IS_PLAYING_CHANGED, EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED, EVENT_MEDIA_ITEM_TRANSITION, EVENT_MEDIA_METADATA_CHANGED, EVENT_PLAY_WHEN_READY_CHANGED, EVENT_PLAYBACK_PARAMETERS_CHANGED, EVENT_PLAYBACK_STATE_CHANGED, EVENT_PLAYBACK_SUPPRESSION_REASON_CHANGED, EVENT_PLAYER_ERROR, EVENT_PLAYLIST_METADATA_CHANGED, EVENT_POSITION_DISCONTINUITY, EVENT_REPEAT_MODE_CHANGED, EVENT_SEEK_BACK_INCREMENT_CHANGED, EVENT_SEEK_FORWARD_INCREMENT_CHANGED, EVENT_SHUFFLE_MODE_ENABLED_CHANGED, EVENT_TIMELINE_CHANGED, EVENT_TRACK_SELECTION_PARAMETERS_CHANGED, EVENT_TRACKS_CHANGED, MEDIA_ITEM_TRANSITION_REASON_AUTO, MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED, MEDIA_ITEM_TRANSITION_REASON_REPEAT, MEDIA_ITEM_TRANSITION_REASON_SEEK, PLAY_WHEN_READY_CHANGE_REASON_AUDIO_BECOMING_NOISY, PLAY_WHEN_READY_CHANGE_REASON_AUDIO_FOCUS_LOSS, PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM, PLAY_WHEN_READY_CHANGE_REASON_REMOTE, PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST, PLAYBACK_SUPPRESSION_REASON_NONE, PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOSS, REPEAT_MODE_ALL, REPEAT_MODE_OFF, REPEAT_MODE_ONE, STATE_BUFFERING, STATE_ENDED, STATE_IDLE, STATE_READY, TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED, TIMELINE_CHANGE_REASON_SOURCE_UPDATE
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
BasePlayer()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addMediaItem(int index, MediaItem mediaItem)
Adds a media item at the given index of the playlist.void
addMediaItem(MediaItem mediaItem)
Adds a media item to the end of the playlist.void
addMediaItems(List<MediaItem> mediaItems)
Adds a list of media items to the end of the playlist.boolean
canAdvertiseSession()
Returns whether the player can be used to advertise a media session.void
clearMediaItems()
Clears the playlist.protected Player.Commands
getAvailableCommands(Player.Commands permanentAvailableCommands)
Returns thePlayer.Commands
available in the player.int
getBufferedPercentage()
Returns an estimate of the percentage in the current content or ad up to which data is buffered, or 0 if no estimate is available.long
getContentDuration()
IfPlayer.isPlayingAd()
returnstrue
, returns the duration of the current content in milliseconds, orC.TIME_UNSET
if the duration is not known.long
getCurrentLiveOffset()
Returns the offset of the current playback position from the live edge in milliseconds, orC.TIME_UNSET
if the currentMediaItem
Player.isCurrentMediaItemLive()
isn't live} or the offset is unknown.Object
getCurrentManifest()
Returns the current manifest.MediaItem
getCurrentMediaItem()
Returns the currently playingMediaItem
.int
getCurrentWindowIndex()
Deprecated.MediaItem
getMediaItemAt(int index)
Returns theMediaItem
at the given index.int
getMediaItemCount()
Returns the number ofmedia items
in the playlist.int
getNextMediaItemIndex()
Returns the index of theMediaItem
that will be played ifPlayer.seekToNextMediaItem()
is called, which may depend on the current repeat mode and whether shuffle mode is enabled.int
getNextWindowIndex()
Deprecated.int
getPreviousMediaItemIndex()
Returns the index of theMediaItem
that will be played ifPlayer.seekToPreviousMediaItem()
is called, which may depend on the current repeat mode and whether shuffle mode is enabled.int
getPreviousWindowIndex()
Deprecated.boolean
hasNext()
Deprecated.boolean
hasNextMediaItem()
Returns whether a nextMediaItem
exists, which may depend on the current repeat mode and whether shuffle mode is enabled.boolean
hasNextWindow()
Deprecated.boolean
hasPrevious()
Deprecated.boolean
hasPreviousMediaItem()
Returns whether a previous media item exists, which may depend on the current repeat mode and whether shuffle mode is enabled.boolean
hasPreviousWindow()
Deprecated.boolean
isCommandAvailable(@com.google.android.exoplayer2.Player.Command int command)
Returns whether the providedPlayer.Command
is available.boolean
isCurrentMediaItemDynamic()
boolean
isCurrentMediaItemLive()
boolean
isCurrentMediaItemSeekable()
boolean
isCurrentWindowDynamic()
Deprecated.boolean
isCurrentWindowLive()
Deprecated.boolean
isCurrentWindowSeekable()
Deprecated.boolean
isPlaying()
Returns whether the player is playing, i.e.void
moveMediaItem(int currentIndex, int newIndex)
Moves the media item at the current index to the new index.void
next()
Deprecated.void
pause()
Pauses playback.void
play()
Resumes playback as soon asPlayer.getPlaybackState()
==Player.STATE_READY
.void
previous()
Deprecated.void
removeMediaItem(int index)
Removes the media item at the given index of the playlist.void
seekBack()
Seeks back in the currentMediaItem
byPlayer.getSeekBackIncrement()
milliseconds.void
seekForward()
Seeks forward in the currentMediaItem
byPlayer.getSeekForwardIncrement()
milliseconds.void
seekTo(long positionMs)
Seeks to a position specified in milliseconds in the currentMediaItem
.void
seekToDefaultPosition()
Seeks to the default position associated with the currentMediaItem
.void
seekToDefaultPosition(int mediaItemIndex)
Seeks to the default position associated with the specifiedMediaItem
.void
seekToNext()
Seeks to a later position in the current or nextMediaItem
(if available).void
seekToNextMediaItem()
Seeks to the default position of the nextMediaItem
, which may depend on the current repeat mode and whether shuffle mode is enabled.void
seekToNextWindow()
Deprecated.void
seekToPrevious()
Seeks to an earlier position in the current or previousMediaItem
(if available).void
seekToPreviousMediaItem()
Seeks to the default position of the previousMediaItem
, which may depend on the current repeat mode and whether shuffle mode is enabled.void
seekToPreviousWindow()
Deprecated.void
setMediaItem(MediaItem mediaItem)
Clears the playlist, adds the specifiedMediaItem
and resets the position to the default position.void
setMediaItem(MediaItem mediaItem, boolean resetPosition)
Clears the playlist and adds the specifiedMediaItem
.void
setMediaItem(MediaItem mediaItem, long startPositionMs)
Clears the playlist and adds the specifiedMediaItem
.void
setMediaItems(List<MediaItem> mediaItems)
Clears the playlist, adds the specifiedMediaItems
and resets the position to the default position.void
setPlaybackSpeed(float speed)
Changes the rate at which playback occurs.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.google.android.exoplayer2.Player
addListener, addMediaItems, clearVideoSurface, clearVideoSurface, clearVideoSurfaceHolder, clearVideoSurfaceView, clearVideoTextureView, decreaseDeviceVolume, getApplicationLooper, getAudioAttributes, getAvailableCommands, getBufferedPosition, getContentBufferedPosition, getContentPosition, getCurrentAdGroupIndex, getCurrentAdIndexInAdGroup, getCurrentCues, getCurrentMediaItemIndex, getCurrentPeriodIndex, getCurrentPosition, getCurrentTimeline, getCurrentTrackGroups, getCurrentTrackSelections, getCurrentTracksInfo, getDeviceInfo, getDeviceVolume, getDuration, getMaxSeekToPreviousPosition, getMediaMetadata, getPlaybackParameters, getPlaybackState, getPlaybackSuppressionReason, getPlayerError, getPlaylistMetadata, getPlayWhenReady, getRepeatMode, getSeekBackIncrement, getSeekForwardIncrement, getShuffleModeEnabled, getTotalBufferedDuration, getTrackSelectionParameters, getVideoSize, getVolume, increaseDeviceVolume, isDeviceMuted, isLoading, isPlayingAd, moveMediaItems, prepare, release, removeListener, removeMediaItems, seekTo, setDeviceMuted, setDeviceVolume, setMediaItems, setMediaItems, setPlaybackParameters, setPlaylistMetadata, setPlayWhenReady, setRepeatMode, setShuffleModeEnabled, setTrackSelectionParameters, setVideoSurface, setVideoSurfaceHolder, setVideoSurfaceView, setVideoTextureView, setVolume, stop, stop
-
-
-
-
Field Detail
-
window
protected final Timeline.Window window
-
-
Method Detail
-
setMediaItem
public final void setMediaItem(MediaItem mediaItem)
Description copied from interface:Player
Clears the playlist, adds the specifiedMediaItem
and resets the position to the default position.- Specified by:
setMediaItem
in interfacePlayer
- Parameters:
mediaItem
- The newMediaItem
.
-
setMediaItem
public final void setMediaItem(MediaItem mediaItem, long startPositionMs)
Description copied from interface:Player
Clears the playlist and adds the specifiedMediaItem
.- Specified by:
setMediaItem
in interfacePlayer
- Parameters:
mediaItem
- The newMediaItem
.startPositionMs
- The position in milliseconds to start playback from.
-
setMediaItem
public final void setMediaItem(MediaItem mediaItem, boolean resetPosition)
Description copied from interface:Player
Clears the playlist and adds the specifiedMediaItem
.- Specified by:
setMediaItem
in interfacePlayer
- Parameters:
mediaItem
- The newMediaItem
.resetPosition
- Whether the playback position should be reset to the default position. If false, playback will start from the position defined byPlayer.getCurrentMediaItemIndex()
andPlayer.getCurrentPosition()
.
-
setMediaItems
public final void setMediaItems(List<MediaItem> mediaItems)
Description copied from interface:Player
Clears the playlist, adds the specifiedMediaItems
and resets the position to the default position.- Specified by:
setMediaItems
in interfacePlayer
- Parameters:
mediaItems
- The newMediaItems
.
-
addMediaItem
public final void addMediaItem(int index, MediaItem mediaItem)
Description copied from interface:Player
Adds a media item at the given index of the playlist.- Specified by:
addMediaItem
in interfacePlayer
- Parameters:
index
- The index at which to add the media item. If the index is larger than the size of the playlist, the media item is added to the end of the playlist.mediaItem
- TheMediaItem
to add.
-
addMediaItem
public final void addMediaItem(MediaItem mediaItem)
Description copied from interface:Player
Adds a media item to the end of the playlist.- Specified by:
addMediaItem
in interfacePlayer
- Parameters:
mediaItem
- TheMediaItem
to add.
-
addMediaItems
public final void addMediaItems(List<MediaItem> mediaItems)
Description copied from interface:Player
Adds a list of media items to the end of the playlist.- Specified by:
addMediaItems
in interfacePlayer
- Parameters:
mediaItems
- TheMediaItems
to add.
-
moveMediaItem
public final void moveMediaItem(int currentIndex, int newIndex)
Description copied from interface:Player
Moves the media item at the current index to the new index.- Specified by:
moveMediaItem
in interfacePlayer
- Parameters:
currentIndex
- The current index of the media item to move.newIndex
- The new index of the media item. If the new index is larger than the size of the playlist the item is moved to the end of the playlist.
-
removeMediaItem
public final void removeMediaItem(int index)
Description copied from interface:Player
Removes the media item at the given index of the playlist.- Specified by:
removeMediaItem
in interfacePlayer
- Parameters:
index
- The index at which to remove the media item.
-
clearMediaItems
public final void clearMediaItems()
Description copied from interface:Player
Clears the playlist.- Specified by:
clearMediaItems
in interfacePlayer
-
isCommandAvailable
public final boolean isCommandAvailable(@Command @com.google.android.exoplayer2.Player.Command int command)
Description copied from interface:Player
Returns whether the providedPlayer.Command
is available.This method does not execute the command.
Executing a command that is not available (for example, calling
Player.seekToNextMediaItem()
ifPlayer.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM
is unavailable) will neither throw an exception nor generate aPlayer.getPlayerError()
player error}.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM
andPlayer.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM
are unavailable if there is no suchMediaItem
.- Specified by:
isCommandAvailable
in interfacePlayer
- Parameters:
command
- APlayer.Command
.- Returns:
- Whether the
Player.Command
is available. - See Also:
Player.Listener.onAvailableCommandsChanged(Commands)
-
canAdvertiseSession
public final boolean canAdvertiseSession()
Returns whether the player can be used to advertise a media session.BasePlayer and its descendents will return
true
.- Specified by:
canAdvertiseSession
in interfacePlayer
-
play
public final void play()
Description copied from interface:Player
Resumes playback as soon asPlayer.getPlaybackState()
==Player.STATE_READY
. Equivalent tosetPlayWhenReady(true)
.
-
pause
public final void pause()
Description copied from interface:Player
Pauses playback. Equivalent tosetPlayWhenReady(false)
.
-
isPlaying
public final boolean isPlaying()
Description copied from interface:Player
Returns whether the player is playing, i.e.Player.getCurrentPosition()
is advancing.If
false
, then at least one of the following is true:- The
playback state
is notready
. - There is no
intention to play
. - Playback is
suppressed for other reasons
.
- Specified by:
isPlaying
in interfacePlayer
- Returns:
- Whether the player is playing.
- See Also:
Player.Listener.onIsPlayingChanged(boolean)
- The
-
seekToDefaultPosition
public final void seekToDefaultPosition()
Description copied from interface:Player
Seeks to the default position associated with the currentMediaItem
. The position can depend on the type of media being played. For live streams it will typically be the live edge. For other streams it will typically be the start.- Specified by:
seekToDefaultPosition
in interfacePlayer
-
seekToDefaultPosition
public final void seekToDefaultPosition(int mediaItemIndex)
Description copied from interface:Player
Seeks to the default position associated with the specifiedMediaItem
. The position can depend on the type of media being played. For live streams it will typically be the live edge. For other streams it will typically be the start.- Specified by:
seekToDefaultPosition
in interfacePlayer
- Parameters:
mediaItemIndex
- The index of theMediaItem
whose associated default position should be seeked to.
-
seekTo
public final void seekTo(long positionMs)
Description copied from interface:Player
Seeks to a position specified in milliseconds in the currentMediaItem
.- Specified by:
seekTo
in interfacePlayer
- Parameters:
positionMs
- The seek position in the currentMediaItem
, orC.TIME_UNSET
to seek to the media item's default position.
-
seekBack
public final void seekBack()
Description copied from interface:Player
Seeks back in the currentMediaItem
byPlayer.getSeekBackIncrement()
milliseconds.
-
seekForward
public final void seekForward()
Description copied from interface:Player
Seeks forward in the currentMediaItem
byPlayer.getSeekForwardIncrement()
milliseconds.- Specified by:
seekForward
in interfacePlayer
-
hasPrevious
@Deprecated public final boolean hasPrevious()
Deprecated.- Specified by:
hasPrevious
in interfacePlayer
-
hasPreviousWindow
@Deprecated public final boolean hasPreviousWindow()
Deprecated.- Specified by:
hasPreviousWindow
in interfacePlayer
-
hasPreviousMediaItem
public final boolean hasPreviousMediaItem()
Description copied from interface:Player
Returns whether a previous media item exists, which may depend on the current repeat mode and whether shuffle mode is enabled.Note: When the repeat mode is
Player.REPEAT_MODE_ONE
, this method behaves the same as when the current repeat mode isPlayer.REPEAT_MODE_OFF
. SeePlayer.REPEAT_MODE_ONE
for more details.- Specified by:
hasPreviousMediaItem
in interfacePlayer
-
previous
@Deprecated public final void previous()
Deprecated.
-
seekToPreviousWindow
@Deprecated public final void seekToPreviousWindow()
Deprecated.- Specified by:
seekToPreviousWindow
in interfacePlayer
-
seekToPreviousMediaItem
public final void seekToPreviousMediaItem()
Description copied from interface:Player
Seeks to the default position of the previousMediaItem
, which may depend on the current repeat mode and whether shuffle mode is enabled. Does nothing ifPlayer.hasPreviousMediaItem()
isfalse
.Note: When the repeat mode is
Player.REPEAT_MODE_ONE
, this method behaves the same as when the current repeat mode isPlayer.REPEAT_MODE_OFF
. SeePlayer.REPEAT_MODE_ONE
for more details.- Specified by:
seekToPreviousMediaItem
in interfacePlayer
-
seekToPrevious
public final void seekToPrevious()
Description copied from interface:Player
Seeks to an earlier position in the current or previousMediaItem
(if available). More precisely:- If the timeline is empty or seeking is not possible, does nothing.
- Otherwise, if the current
MediaItem
isPlayer.isCurrentMediaItemLive()
live} andunseekable
, then:- If
a previous media item exists
, seeks to the default position of the previous media item. - Otherwise, does nothing.
- If
- Otherwise, if
a previous media item exists
and thecurrent position
is less thanPlayer.getMaxSeekToPreviousPosition()
, seeks to the default position of the previousMediaItem
. - Otherwise, seeks to 0 in the current
MediaItem
.
- Specified by:
seekToPrevious
in interfacePlayer
-
hasNext
@Deprecated public final boolean hasNext()
Deprecated.
-
hasNextWindow
@Deprecated public final boolean hasNextWindow()
Deprecated.- Specified by:
hasNextWindow
in interfacePlayer
-
hasNextMediaItem
public final boolean hasNextMediaItem()
Description copied from interface:Player
Returns whether a nextMediaItem
exists, which may depend on the current repeat mode and whether shuffle mode is enabled.Note: When the repeat mode is
Player.REPEAT_MODE_ONE
, this method behaves the same as when the current repeat mode isPlayer.REPEAT_MODE_OFF
. SeePlayer.REPEAT_MODE_ONE
for more details.- Specified by:
hasNextMediaItem
in interfacePlayer
-
next
@Deprecated public final void next()
Deprecated.
-
seekToNextWindow
@Deprecated public final void seekToNextWindow()
Deprecated.- Specified by:
seekToNextWindow
in interfacePlayer
-
seekToNextMediaItem
public final void seekToNextMediaItem()
Description copied from interface:Player
Seeks to the default position of the nextMediaItem
, which may depend on the current repeat mode and whether shuffle mode is enabled. Does nothing ifPlayer.hasNextMediaItem()
isfalse
.Note: When the repeat mode is
Player.REPEAT_MODE_ONE
, this method behaves the same as when the current repeat mode isPlayer.REPEAT_MODE_OFF
. SeePlayer.REPEAT_MODE_ONE
for more details.- Specified by:
seekToNextMediaItem
in interfacePlayer
-
seekToNext
public final void seekToNext()
Description copied from interface:Player
Seeks to a later position in the current or nextMediaItem
(if available). More precisely:- If the timeline is empty or seeking is not possible, does nothing.
- Otherwise, if
a next media item exists
, seeks to the default position of the nextMediaItem
. - Otherwise, if the current
MediaItem
islive
and has not ended, seeks to the live edge of the currentMediaItem
. - Otherwise, does nothing.
- Specified by:
seekToNext
in interfacePlayer
-
setPlaybackSpeed
public final void setPlaybackSpeed(float speed)
Description copied from interface:Player
Changes the rate at which playback occurs. The pitch is not changed.This is equivalent to
setPlaybackParameters(getPlaybackParameters().withSpeed(speed))
.- Specified by:
setPlaybackSpeed
in interfacePlayer
- Parameters:
speed
- The linear factor by which playback will be sped up. Must be higher than 0. 1 is normal speed, 2 is twice as fast, 0.5 is half normal speed...
-
getCurrentWindowIndex
@Deprecated public final int getCurrentWindowIndex()
Deprecated.- Specified by:
getCurrentWindowIndex
in interfacePlayer
-
getNextWindowIndex
@Deprecated public final int getNextWindowIndex()
Deprecated.- Specified by:
getNextWindowIndex
in interfacePlayer
-
getNextMediaItemIndex
public final int getNextMediaItemIndex()
Description copied from interface:Player
Returns the index of theMediaItem
that will be played ifPlayer.seekToNextMediaItem()
is called, which may depend on the current repeat mode and whether shuffle mode is enabled. ReturnsC.INDEX_UNSET
ifPlayer.hasNextMediaItem()
isfalse
.Note: When the repeat mode is
Player.REPEAT_MODE_ONE
, this method behaves the same as when the current repeat mode isPlayer.REPEAT_MODE_OFF
. SeePlayer.REPEAT_MODE_ONE
for more details.- Specified by:
getNextMediaItemIndex
in interfacePlayer
-
getPreviousWindowIndex
@Deprecated public final int getPreviousWindowIndex()
Deprecated.- Specified by:
getPreviousWindowIndex
in interfacePlayer
-
getPreviousMediaItemIndex
public final int getPreviousMediaItemIndex()
Description copied from interface:Player
Returns the index of theMediaItem
that will be played ifPlayer.seekToPreviousMediaItem()
is called, which may depend on the current repeat mode and whether shuffle mode is enabled. ReturnsC.INDEX_UNSET
ifPlayer.hasPreviousMediaItem()
isfalse
.Note: When the repeat mode is
Player.REPEAT_MODE_ONE
, this method behaves the same as when the current repeat mode isPlayer.REPEAT_MODE_OFF
. SeePlayer.REPEAT_MODE_ONE
for more details.- Specified by:
getPreviousMediaItemIndex
in interfacePlayer
-
getCurrentMediaItem
@Nullable public final MediaItem getCurrentMediaItem()
Description copied from interface:Player
Returns the currently playingMediaItem
. May be null if the timeline is empty.- Specified by:
getCurrentMediaItem
in interfacePlayer
- See Also:
Player.Listener.onMediaItemTransition(MediaItem, int)
-
getMediaItemCount
public final int getMediaItemCount()
Description copied from interface:Player
Returns the number ofmedia items
in the playlist.- Specified by:
getMediaItemCount
in interfacePlayer
-
getMediaItemAt
public final MediaItem getMediaItemAt(int index)
Description copied from interface:Player
Returns theMediaItem
at the given index.- Specified by:
getMediaItemAt
in interfacePlayer
-
getCurrentManifest
@Nullable public final Object getCurrentManifest()
Description copied from interface:Player
Returns the current manifest. The type depends on the type of media being played. May be null.- Specified by:
getCurrentManifest
in interfacePlayer
-
getBufferedPercentage
public final int getBufferedPercentage()
Description copied from interface:Player
Returns an estimate of the percentage in the current content or ad up to which data is buffered, or 0 if no estimate is available.- Specified by:
getBufferedPercentage
in interfacePlayer
-
isCurrentWindowDynamic
@Deprecated public final boolean isCurrentWindowDynamic()
Deprecated.- Specified by:
isCurrentWindowDynamic
in interfacePlayer
-
isCurrentMediaItemDynamic
public final boolean isCurrentMediaItemDynamic()
Description copied from interface:Player
Returns whether the currentMediaItem
is dynamic (may change when theTimeline
is updated), orfalse
if theTimeline
is empty.- Specified by:
isCurrentMediaItemDynamic
in interfacePlayer
- See Also:
Timeline.Window.isDynamic
-
isCurrentWindowLive
@Deprecated public final boolean isCurrentWindowLive()
Deprecated.- Specified by:
isCurrentWindowLive
in interfacePlayer
-
isCurrentMediaItemLive
public final boolean isCurrentMediaItemLive()
Description copied from interface:Player
- Specified by:
isCurrentMediaItemLive
in interfacePlayer
- See Also:
Timeline.Window.isLive()
-
getCurrentLiveOffset
public final long getCurrentLiveOffset()
Description copied from interface:Player
Returns the offset of the current playback position from the live edge in milliseconds, orC.TIME_UNSET
if the currentMediaItem
Player.isCurrentMediaItemLive()
isn't live} or the offset is unknown.The offset is calculated as
currentTime - playbackPosition
, so should usually be positive.Note that this offset may rely on an accurate local time, so this method may return an incorrect value if the difference between system clock and server clock is unknown.
- Specified by:
getCurrentLiveOffset
in interfacePlayer
-
isCurrentWindowSeekable
@Deprecated public final boolean isCurrentWindowSeekable()
Deprecated.- Specified by:
isCurrentWindowSeekable
in interfacePlayer
-
isCurrentMediaItemSeekable
public final boolean isCurrentMediaItemSeekable()
Description copied from interface:Player
- Specified by:
isCurrentMediaItemSeekable
in interfacePlayer
- See Also:
Timeline.Window.isSeekable
-
getContentDuration
public final long getContentDuration()
Description copied from interface:Player
IfPlayer.isPlayingAd()
returnstrue
, returns the duration of the current content in milliseconds, orC.TIME_UNSET
if the duration is not known. If there is no ad playing, the returned duration is the same as that returned byPlayer.getDuration()
.- Specified by:
getContentDuration
in interfacePlayer
-
getAvailableCommands
protected Player.Commands getAvailableCommands(Player.Commands permanentAvailableCommands)
Returns thePlayer.Commands
available in the player.- Parameters:
permanentAvailableCommands
- The commands permanently available in the player.- Returns:
- The available
Player.Commands
.
-
-