Class ForwardingPlayer
- java.lang.Object
-
- com.google.android.exoplayer2.ForwardingPlayer
-
-
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 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 Constructor Description ForwardingPlayer(Player player)
Creates a new instance that forwards all operations toplayer
.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addListener(Player.Listener listener)
Deprecated.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(int index, List<MediaItem> mediaItems)
Adds a list of media items at the given index 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.void
clearVideoSurface()
void
clearVideoSurface(Surface surface)
Clears theSurface
onto which video is being rendered if it matches the one passed.void
clearVideoSurfaceHolder(SurfaceHolder surfaceHolder)
Clears theSurfaceHolder
that holds theSurface
onto which video is being rendered if it matches the one passed.void
clearVideoSurfaceView(SurfaceView surfaceView)
Clears theSurfaceView
onto which video is being rendered if it matches the one passed.void
clearVideoTextureView(TextureView textureView)
Clears theTextureView
onto which video is being rendered if it matches the one passed.void
decreaseDeviceVolume()
Decreases the volume of the device.Looper
getApplicationLooper()
Deprecated.AudioAttributes
getAudioAttributes()
Returns the attributes for audio playback.Player.Commands
getAvailableCommands()
Returns the player's currently availablePlayer.Commands
.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
getBufferedPosition()
Returns an estimate of the position in the current content or ad up to which data is buffered, in milliseconds.long
getContentBufferedPosition()
IfPlayer.isPlayingAd()
returnstrue
, returns an estimate of the content position in the current content up to which data is buffered, in milliseconds.long
getContentDuration()
IfPlayer.isPlayingAd()
returnstrue
, returns the duration of the current content in milliseconds, orC.TIME_UNSET
if the duration is not known.long
getContentPosition()
IfPlayer.isPlayingAd()
returnstrue
, returns the content position that will be played once all ads in the ad group have finished playing, in milliseconds.int
getCurrentAdGroupIndex()
IfPlayer.isPlayingAd()
returns true, returns the index of the ad group in the period currently being played.int
getCurrentAdIndexInAdGroup()
IfPlayer.isPlayingAd()
returns true, returns the index of the ad in its ad group.List<Cue>
getCurrentCues()
Returns the currentCues
.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
getCurrentMediaItemIndex()
Returns the index of the currentMediaItem
in thetimeline
, or the prospective index if thecurrent timeline
is empty.int
getCurrentPeriodIndex()
Returns the index of the period currently being played.long
getCurrentPosition()
Returns the playback position in the current content or ad, in milliseconds, or the prospective position in milliseconds if thecurrent timeline
is empty.Timeline
getCurrentTimeline()
Returns the currentTimeline
.TrackGroupArray
getCurrentTrackGroups()
Returns the available track groups.TrackSelectionArray
getCurrentTrackSelections()
Returns the current track selections.TracksInfo
getCurrentTracksInfo()
Returns the available tracks, as well as the tracks' support, type, and selection status.int
getCurrentWindowIndex()
Deprecated.DeviceInfo
getDeviceInfo()
Gets the device information.int
getDeviceVolume()
Gets the current volume of the device.long
getDuration()
Returns the duration of the current content or ad in milliseconds, orC.TIME_UNSET
if the duration is not known.long
getMaxSeekToPreviousPosition()
Returns the maximum position for whichPlayer.seekToPrevious()
seeks to the previousMediaItem
, in milliseconds.MediaItem
getMediaItemAt(int index)
Returns theMediaItem
at the given index.int
getMediaItemCount()
Returns the number ofmedia items
in the playlist.MediaMetadata
getMediaMetadata()
Returns the current combinedMediaMetadata
, orMediaMetadata.EMPTY
if not supported.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.PlaybackParameters
getPlaybackParameters()
Returns the currently active playback parameters.int
getPlaybackState()
Returns the currentplayback state
of the player.int
getPlaybackSuppressionReason()
Returns the reason why playback is suppressed even thoughPlayer.getPlayWhenReady()
istrue
, orPlayer.PLAYBACK_SUPPRESSION_REASON_NONE
if playback is not suppressed.PlaybackException
getPlayerError()
Returns the error that caused playback to fail.MediaMetadata
getPlaylistMetadata()
Returns the playlistMediaMetadata
, as set byPlayer.setPlaylistMetadata(MediaMetadata)
, orMediaMetadata.EMPTY
if not supported.boolean
getPlayWhenReady()
Whether playback will proceed whenPlayer.getPlaybackState()
==Player.STATE_READY
.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.int
getRepeatMode()
Returns the currentPlayer.RepeatMode
used for playback.long
getSeekBackIncrement()
Returns thePlayer.seekBack()
increment.long
getSeekForwardIncrement()
Returns thePlayer.seekForward()
increment.boolean
getShuffleModeEnabled()
Returns whether shuffling of media items is enabled.long
getTotalBufferedDuration()
Returns an estimate of the total buffered duration from the current position, in milliseconds.TrackSelectionParameters
getTrackSelectionParameters()
Returns the parameters constraining the track selection.VideoSize
getVideoSize()
Gets the size of the video.float
getVolume()
Returns the audio volume, with 0 being silence and 1 being unity gain (signal unchanged).Player
getWrappedPlayer()
Returns thePlayer
to which operations are forwarded.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.void
increaseDeviceVolume()
Increases the volume of the device.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
isDeviceMuted()
Gets whether the device is muted or not.boolean
isLoading()
Whether the player is currently loading the source.boolean
isPlaying()
Returns whether the player is playing, i.e.boolean
isPlayingAd()
Returns whether the player is currently playing an ad.void
moveMediaItem(int currentIndex, int newIndex)
Moves the media item at the current index to the new index.void
moveMediaItems(int fromIndex, int toIndex, int newIndex)
Moves the media item range to the new index.void
next()
Deprecated.void
pause()
Pauses playback.void
play()
Resumes playback as soon asPlayer.getPlaybackState()
==Player.STATE_READY
.void
prepare()
Prepares the player.void
previous()
Deprecated.void
release()
Releases the player.void
removeListener(Player.Listener listener)
Unregister a listener registered throughPlayer.addListener(Listener)
.void
removeMediaItem(int index)
Removes the media item at the given index of the playlist.void
removeMediaItems(int fromIndex, int toIndex)
Removes a range of media items from the playlist.void
seekBack()
Seeks back in the currentMediaItem
byPlayer.getSeekBackIncrement()
milliseconds.void
seekForward()
Seeks forward in the currentMediaItem
byPlayer.getSeekForwardIncrement()
milliseconds.void
seekTo(int mediaItemIndex, long positionMs)
Seeks to a position specified in milliseconds in the specifiedMediaItem
.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
setDeviceMuted(boolean muted)
Sets the mute state of the device.void
setDeviceVolume(int volume)
Sets the volume of the device.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
setMediaItems(List<MediaItem> mediaItems, boolean resetPosition)
Clears the playlist and adds the specifiedMediaItems
.void
setMediaItems(List<MediaItem> mediaItems, int startIndex, long startPositionMs)
Clears the playlist and adds the specifiedMediaItems
.void
setPlaybackParameters(PlaybackParameters playbackParameters)
Attempts to set the playback parameters.void
setPlaybackSpeed(float speed)
Changes the rate at which playback occurs.void
setPlaylistMetadata(MediaMetadata mediaMetadata)
Sets the playlistMediaMetadata
.void
setPlayWhenReady(boolean playWhenReady)
Sets whether playback should proceed whenPlayer.getPlaybackState()
==Player.STATE_READY
.void
setRepeatMode(@com.google.android.exoplayer2.Player.RepeatMode int repeatMode)
Sets thePlayer.RepeatMode
to be used for playback.void
setShuffleModeEnabled(boolean shuffleModeEnabled)
Sets whether shuffling of media items is enabled.void
setTrackSelectionParameters(TrackSelectionParameters parameters)
Sets the parameters constraining the track selection.void
setVideoSurface(Surface surface)
Sets theSurface
onto which video will be rendered.void
setVideoSurfaceHolder(SurfaceHolder surfaceHolder)
Sets theSurfaceHolder
that holds theSurface
onto which video will be rendered.void
setVideoSurfaceView(SurfaceView surfaceView)
Sets theSurfaceView
onto which video will be rendered.void
setVideoTextureView(TextureView textureView)
Sets theTextureView
onto which video will be rendered.void
setVolume(float volume)
Sets the audio volume, valid values are between 0 (silence) and 1 (unity gain, signal unchanged), inclusive.void
stop()
Stops playback without resetting the playlist.void
stop(boolean reset)
Deprecated.
-
-
-
Constructor Detail
-
ForwardingPlayer
public ForwardingPlayer(Player player)
Creates a new instance that forwards all operations toplayer
.
-
-
Method Detail
-
getApplicationLooper
@Deprecated public Looper getApplicationLooper()
Deprecated.Description copied from interface:Player
Returns theLooper
associated with the application thread that's used to access the player and on which player events are received.- Specified by:
getApplicationLooper
in interfacePlayer
-
addListener
@Deprecated public void addListener(Player.Listener listener)
Deprecated.Description copied from interface:Player
Registers a listener to receive all events from the player.The listener's methods will be called on the thread associated with
Player.getApplicationLooper()
.- Specified by:
addListener
in interfacePlayer
- Parameters:
listener
- The listener to register.
-
removeListener
public void removeListener(Player.Listener listener)
Description copied from interface:Player
Unregister a listener registered throughPlayer.addListener(Listener)
. The listener will no longer receive events.- Specified by:
removeListener
in interfacePlayer
- Parameters:
listener
- The listener to unregister.
-
setMediaItems
public 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
.
-
setMediaItems
public void setMediaItems(List<MediaItem> mediaItems, boolean resetPosition)
Description copied from interface:Player
Clears the playlist and adds the specifiedMediaItems
.- Specified by:
setMediaItems
in interfacePlayer
- Parameters:
mediaItems
- The newMediaItems
.resetPosition
- Whether the playback position should be reset to the default position in the firstTimeline.Window
. If false, playback will start from the position defined byPlayer.getCurrentMediaItemIndex()
andPlayer.getCurrentPosition()
.
-
setMediaItems
public void setMediaItems(List<MediaItem> mediaItems, int startIndex, long startPositionMs)
Description copied from interface:Player
Clears the playlist and adds the specifiedMediaItems
.- Specified by:
setMediaItems
in interfacePlayer
- Parameters:
mediaItems
- The newMediaItems
.startIndex
- TheMediaItem
index to start playback from. IfC.INDEX_UNSET
is passed, the current position is not reset.startPositionMs
- The position in milliseconds to start playback from. IfC.TIME_UNSET
is passed, the default position of the givenMediaItem
is used. In any case, ifstartIndex
is set toC.INDEX_UNSET
, this parameter is ignored and the position is not reset at all.
-
setMediaItem
public 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 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 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()
.
-
addMediaItem
public 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.
-
addMediaItem
public 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.
-
addMediaItems
public 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.
-
addMediaItems
public void addMediaItems(int index, List<MediaItem> mediaItems)
Description copied from interface:Player
Adds a list of media items at the given index of the playlist.- Specified by:
addMediaItems
in interfacePlayer
- Parameters:
index
- The index at which to add the media items. If the index is larger than the size of the playlist, the media items are added to the end of the playlist.mediaItems
- TheMediaItems
to add.
-
moveMediaItem
public 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.
-
moveMediaItems
public void moveMediaItems(int fromIndex, int toIndex, int newIndex)
Description copied from interface:Player
Moves the media item range to the new index.- Specified by:
moveMediaItems
in interfacePlayer
- Parameters:
fromIndex
- The start of the range to move.toIndex
- The first item not to be included in the range (exclusive).newIndex
- The new index of the first media item of the range. If the new index is larger than the size of the remaining playlist after removing the range, the range is moved to the end of the playlist.
-
removeMediaItem
public 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.
-
removeMediaItems
public void removeMediaItems(int fromIndex, int toIndex)
Description copied from interface:Player
Removes a range of media items from the playlist.- Specified by:
removeMediaItems
in interfacePlayer
- Parameters:
fromIndex
- The index at which to start removing media items.toIndex
- The index of the first item to be kept (exclusive). If the index is larger than the size of the playlist, media items to the end of the playlist are removed.
-
clearMediaItems
public void clearMediaItems()
Description copied from interface:Player
Clears the playlist.- Specified by:
clearMediaItems
in interfacePlayer
-
isCommandAvailable
public 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 boolean canAdvertiseSession()
Description copied from interface:Player
Returns whether the player can be used to advertise a media session.- Specified by:
canAdvertiseSession
in interfacePlayer
-
getAvailableCommands
public Player.Commands getAvailableCommands()
Description copied from interface:Player
Returns the player's currently availablePlayer.Commands
.The returned
Player.Commands
are not updated when available commands change. UsePlayer.Listener.onAvailableCommandsChanged(Commands)
to get an update when the available commands change.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:
getAvailableCommands
in interfacePlayer
- Returns:
- The currently available
Player.Commands
. - See Also:
Player.Listener.onAvailableCommandsChanged(com.google.android.exoplayer2.Player.Commands)
-
prepare
public void prepare()
Description copied from interface:Player
Prepares the player.This will move the player out of
idle state
and the player will start loading media and acquire resources needed for playback.
-
getPlaybackState
public int getPlaybackState()
Description copied from interface:Player
Returns the currentplayback state
of the player.- Specified by:
getPlaybackState
in interfacePlayer
- Returns:
- The current
playback state
. - See Also:
Player.Listener.onPlaybackStateChanged(int)
-
getPlaybackSuppressionReason
public int getPlaybackSuppressionReason()
Description copied from interface:Player
Returns the reason why playback is suppressed even thoughPlayer.getPlayWhenReady()
istrue
, orPlayer.PLAYBACK_SUPPRESSION_REASON_NONE
if playback is not suppressed.- Specified by:
getPlaybackSuppressionReason
in interfacePlayer
- Returns:
- The current
playback suppression reason
. - See Also:
Player.Listener.onPlaybackSuppressionReasonChanged(int)
-
isPlaying
public 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
-
getPlayerError
@Nullable public PlaybackException getPlayerError()
Description copied from interface:Player
Returns the error that caused playback to fail. This is the same error that will have been reported viaPlayer.Listener.onPlayerError(PlaybackException)
at the time of failure. It can be queried using this method until the player is re-prepared.Note that this method will always return
null
ifPlayer.getPlaybackState()
is notPlayer.STATE_IDLE
.- Specified by:
getPlayerError
in interfacePlayer
- Returns:
- The error, or
null
. - See Also:
Player.Listener.onPlayerError(PlaybackException)
-
play
public void play()
Description copied from interface:Player
Resumes playback as soon asPlayer.getPlaybackState()
==Player.STATE_READY
. Equivalent tosetPlayWhenReady(true)
.
-
pause
public void pause()
Description copied from interface:Player
Pauses playback. Equivalent tosetPlayWhenReady(false)
.
-
setPlayWhenReady
public void setPlayWhenReady(boolean playWhenReady)
Description copied from interface:Player
Sets whether playback should proceed whenPlayer.getPlaybackState()
==Player.STATE_READY
.If the player is already in the ready state then this method pauses and resumes playback.
- Specified by:
setPlayWhenReady
in interfacePlayer
- Parameters:
playWhenReady
- Whether playback should proceed when ready.
-
getPlayWhenReady
public boolean getPlayWhenReady()
Description copied from interface:Player
Whether playback will proceed whenPlayer.getPlaybackState()
==Player.STATE_READY
.- Specified by:
getPlayWhenReady
in interfacePlayer
- Returns:
- Whether playback will proceed when ready.
- See Also:
Player.Listener.onPlayWhenReadyChanged(boolean, int)
-
setRepeatMode
public void setRepeatMode(@RepeatMode @com.google.android.exoplayer2.Player.RepeatMode int repeatMode)
Description copied from interface:Player
Sets thePlayer.RepeatMode
to be used for playback.- Specified by:
setRepeatMode
in interfacePlayer
- Parameters:
repeatMode
- The repeat mode.
-
getRepeatMode
public int getRepeatMode()
Description copied from interface:Player
Returns the currentPlayer.RepeatMode
used for playback.- Specified by:
getRepeatMode
in interfacePlayer
- Returns:
- The current repeat mode.
- See Also:
Player.Listener.onRepeatModeChanged(int)
-
setShuffleModeEnabled
public void setShuffleModeEnabled(boolean shuffleModeEnabled)
Description copied from interface:Player
Sets whether shuffling of media items is enabled.- Specified by:
setShuffleModeEnabled
in interfacePlayer
- Parameters:
shuffleModeEnabled
- Whether shuffling is enabled.
-
getShuffleModeEnabled
public boolean getShuffleModeEnabled()
Description copied from interface:Player
Returns whether shuffling of media items is enabled.- Specified by:
getShuffleModeEnabled
in interfacePlayer
- See Also:
Player.Listener.onShuffleModeEnabledChanged(boolean)
-
isLoading
public boolean isLoading()
Description copied from interface:Player
Whether the player is currently loading the source.- Specified by:
isLoading
in interfacePlayer
- Returns:
- Whether the player is currently loading the source.
- See Also:
Player.Listener.onIsLoadingChanged(boolean)
-
seekToDefaultPosition
public 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 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 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.
-
seekTo
public void seekTo(int mediaItemIndex, long positionMs)
Description copied from interface:Player
Seeks to a position specified in milliseconds in the specifiedMediaItem
.- Specified by:
seekTo
in interfacePlayer
- Parameters:
mediaItemIndex
- The index of theMediaItem
.positionMs
- The seek position in the specifiedMediaItem
, orC.TIME_UNSET
to seek to the media item's default position.
-
getSeekBackIncrement
public long getSeekBackIncrement()
Description copied from interface:Player
Returns thePlayer.seekBack()
increment.- Specified by:
getSeekBackIncrement
in interfacePlayer
- Returns:
- The seek back increment, in milliseconds.
- See Also:
Player.Listener.onSeekBackIncrementChanged(long)
-
seekBack
public void seekBack()
Description copied from interface:Player
Seeks back in the currentMediaItem
byPlayer.getSeekBackIncrement()
milliseconds.
-
getSeekForwardIncrement
public long getSeekForwardIncrement()
Description copied from interface:Player
Returns thePlayer.seekForward()
increment.- Specified by:
getSeekForwardIncrement
in interfacePlayer
- Returns:
- The seek forward increment, in milliseconds.
- See Also:
Player.Listener.onSeekForwardIncrementChanged(long)
-
seekForward
public void seekForward()
Description copied from interface:Player
Seeks forward in the currentMediaItem
byPlayer.getSeekForwardIncrement()
milliseconds.- Specified by:
seekForward
in interfacePlayer
-
hasPrevious
@Deprecated public boolean hasPrevious()
Deprecated.- Specified by:
hasPrevious
in interfacePlayer
-
hasPreviousWindow
@Deprecated public boolean hasPreviousWindow()
Deprecated.- Specified by:
hasPreviousWindow
in interfacePlayer
-
hasPreviousMediaItem
public 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 void previous()
Deprecated.
-
seekToPreviousWindow
@Deprecated public void seekToPreviousWindow()
Deprecated.- Specified by:
seekToPreviousWindow
in interfacePlayer
-
seekToPreviousMediaItem
public 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 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
-
getMaxSeekToPreviousPosition
public long getMaxSeekToPreviousPosition()
Description copied from interface:Player
Returns the maximum position for whichPlayer.seekToPrevious()
seeks to the previousMediaItem
, in milliseconds.- Specified by:
getMaxSeekToPreviousPosition
in interfacePlayer
- Returns:
- The maximum seek to previous position, in milliseconds.
- See Also:
Player.EventListener.onMaxSeekToPreviousPositionChanged(long)
-
hasNext
@Deprecated public boolean hasNext()
Deprecated.
-
hasNextWindow
@Deprecated public boolean hasNextWindow()
Deprecated.- Specified by:
hasNextWindow
in interfacePlayer
-
hasNextMediaItem
public 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 void next()
Deprecated.
-
seekToNextWindow
@Deprecated public void seekToNextWindow()
Deprecated.- Specified by:
seekToNextWindow
in interfacePlayer
-
seekToNextMediaItem
public 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 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
-
setPlaybackParameters
public void setPlaybackParameters(PlaybackParameters playbackParameters)
Description copied from interface:Player
Attempts to set the playback parameters. PassingPlaybackParameters.DEFAULT
resets the player to the default, which means there is no speed or pitch adjustment.Playback parameters changes may cause the player to buffer.
Player.Listener.onPlaybackParametersChanged(PlaybackParameters)
will be called whenever the currently active playback parameters change.- Specified by:
setPlaybackParameters
in interfacePlayer
- Parameters:
playbackParameters
- The playback parameters.
-
setPlaybackSpeed
public 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...
-
getPlaybackParameters
public PlaybackParameters getPlaybackParameters()
Description copied from interface:Player
Returns the currently active playback parameters.- Specified by:
getPlaybackParameters
in interfacePlayer
- See Also:
Player.Listener.onPlaybackParametersChanged(PlaybackParameters)
-
stop
public void stop()
Description copied from interface:Player
Stops playback without resetting the playlist. UsePlayer.pause()
rather than this method if the intention is to pause playback.Calling this method will cause the playback state to transition to
Player.STATE_IDLE
and the player will release the loaded media and resources required for playback. The player instance can still be used by callingPlayer.prepare()
again, andPlayer.release()
must still be called on the player if it's no longer required.Calling this method does not clear the playlist, reset the playback position or the playback error.
-
stop
@Deprecated public void stop(boolean reset)
Deprecated.
-
release
public void release()
Description copied from interface:Player
Releases the player. This method must be called when the player is no longer required. The player must not be used after calling this method.
-
getCurrentTrackGroups
public TrackGroupArray getCurrentTrackGroups()
Description copied from interface:Player
Returns the available track groups.- Specified by:
getCurrentTrackGroups
in interfacePlayer
- See Also:
Player.EventListener.onTracksChanged(TrackGroupArray, TrackSelectionArray)
-
getCurrentTrackSelections
public TrackSelectionArray getCurrentTrackSelections()
Description copied from interface:Player
Returns the current track selections.A concrete implementation may include null elements if it has a fixed number of renderer components, wishes to report a TrackSelection for each of them, and has one or more renderer components that is not assigned any selected tracks.
- Specified by:
getCurrentTrackSelections
in interfacePlayer
- See Also:
Player.EventListener.onTracksChanged(TrackGroupArray, TrackSelectionArray)
-
getCurrentTracksInfo
public TracksInfo getCurrentTracksInfo()
Description copied from interface:Player
Returns the available tracks, as well as the tracks' support, type, and selection status.- Specified by:
getCurrentTracksInfo
in interfacePlayer
- See Also:
Player.EventListener.onTracksChanged(TrackGroupArray, TrackSelectionArray)
-
getTrackSelectionParameters
public TrackSelectionParameters getTrackSelectionParameters()
Description copied from interface:Player
Returns the parameters constraining the track selection.- Specified by:
getTrackSelectionParameters
in interfacePlayer
- See Also:
}
-
setTrackSelectionParameters
public void setTrackSelectionParameters(TrackSelectionParameters parameters)
Description copied from interface:Player
Sets the parameters constraining the track selection.Unsupported parameters will be silently ignored.
Use
Player.getTrackSelectionParameters()
to retrieve the current parameters. For example, the following snippet restricts video to SD whilst keep other track selection parameters unchanged:player.setTrackSelectionParameters( player.getTrackSelectionParameters() .buildUpon() .setMaxVideoSizeSd() .build())
- Specified by:
setTrackSelectionParameters
in interfacePlayer
-
getMediaMetadata
public MediaMetadata getMediaMetadata()
Description copied from interface:Player
Returns the current combinedMediaMetadata
, orMediaMetadata.EMPTY
if not supported.This
MediaMetadata
is a combination of theMediaItem.mediaMetadata
and the static and dynamic metadata from thetrack selections' formats
andPlayer.Listener.onMetadata(Metadata)
. If a field is populated in theMediaItem.mediaMetadata
, it will be prioritised above the same field coming from static or dynamic metadata.- Specified by:
getMediaMetadata
in interfacePlayer
-
getPlaylistMetadata
public MediaMetadata getPlaylistMetadata()
Description copied from interface:Player
Returns the playlistMediaMetadata
, as set byPlayer.setPlaylistMetadata(MediaMetadata)
, orMediaMetadata.EMPTY
if not supported.- Specified by:
getPlaylistMetadata
in interfacePlayer
-
setPlaylistMetadata
public void setPlaylistMetadata(MediaMetadata mediaMetadata)
Description copied from interface:Player
Sets the playlistMediaMetadata
.- Specified by:
setPlaylistMetadata
in interfacePlayer
-
getCurrentManifest
@Nullable public 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
-
getCurrentTimeline
public Timeline getCurrentTimeline()
Description copied from interface:Player
Returns the currentTimeline
. Never null, but may be empty.- Specified by:
getCurrentTimeline
in interfacePlayer
- See Also:
Player.Listener.onTimelineChanged(Timeline, int)
-
getCurrentPeriodIndex
public int getCurrentPeriodIndex()
Description copied from interface:Player
Returns the index of the period currently being played.- Specified by:
getCurrentPeriodIndex
in interfacePlayer
-
getCurrentWindowIndex
@Deprecated public int getCurrentWindowIndex()
Deprecated.- Specified by:
getCurrentWindowIndex
in interfacePlayer
-
getCurrentMediaItemIndex
public int getCurrentMediaItemIndex()
Description copied from interface:Player
Returns the index of the currentMediaItem
in thetimeline
, or the prospective index if thecurrent timeline
is empty.- Specified by:
getCurrentMediaItemIndex
in interfacePlayer
-
getNextWindowIndex
@Deprecated public int getNextWindowIndex()
Deprecated.- Specified by:
getNextWindowIndex
in interfacePlayer
-
getNextMediaItemIndex
public 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 int getPreviousWindowIndex()
Deprecated.- Specified by:
getPreviousWindowIndex
in interfacePlayer
-
getPreviousMediaItemIndex
public 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 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 int getMediaItemCount()
Description copied from interface:Player
Returns the number ofmedia items
in the playlist.- Specified by:
getMediaItemCount
in interfacePlayer
-
getMediaItemAt
public MediaItem getMediaItemAt(int index)
Description copied from interface:Player
Returns theMediaItem
at the given index.- Specified by:
getMediaItemAt
in interfacePlayer
-
getDuration
public long getDuration()
Description copied from interface:Player
Returns the duration of the current content or ad in milliseconds, orC.TIME_UNSET
if the duration is not known.- Specified by:
getDuration
in interfacePlayer
-
getCurrentPosition
public long getCurrentPosition()
Description copied from interface:Player
Returns the playback position in the current content or ad, in milliseconds, or the prospective position in milliseconds if thecurrent timeline
is empty.- Specified by:
getCurrentPosition
in interfacePlayer
-
getBufferedPosition
public long getBufferedPosition()
Description copied from interface:Player
Returns an estimate of the position in the current content or ad up to which data is buffered, in milliseconds.- Specified by:
getBufferedPosition
in interfacePlayer
-
getBufferedPercentage
public 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
-
getTotalBufferedDuration
public long getTotalBufferedDuration()
Description copied from interface:Player
Returns an estimate of the total buffered duration from the current position, in milliseconds. This includes pre-buffered data for subsequent ads andmedia items
.- Specified by:
getTotalBufferedDuration
in interfacePlayer
-
isCurrentWindowDynamic
@Deprecated public boolean isCurrentWindowDynamic()
Deprecated.- Specified by:
isCurrentWindowDynamic
in interfacePlayer
-
isCurrentMediaItemDynamic
public 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 boolean isCurrentWindowLive()
Deprecated.- Specified by:
isCurrentWindowLive
in interfacePlayer
-
isCurrentMediaItemLive
public boolean isCurrentMediaItemLive()
Description copied from interface:Player
- Specified by:
isCurrentMediaItemLive
in interfacePlayer
- See Also:
Timeline.Window.isLive()
-
getCurrentLiveOffset
public 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 boolean isCurrentWindowSeekable()
Deprecated.- Specified by:
isCurrentWindowSeekable
in interfacePlayer
-
isCurrentMediaItemSeekable
public boolean isCurrentMediaItemSeekable()
Description copied from interface:Player
- Specified by:
isCurrentMediaItemSeekable
in interfacePlayer
- See Also:
Timeline.Window.isSeekable
-
isPlayingAd
public boolean isPlayingAd()
Description copied from interface:Player
Returns whether the player is currently playing an ad.- Specified by:
isPlayingAd
in interfacePlayer
-
getCurrentAdGroupIndex
public int getCurrentAdGroupIndex()
Description copied from interface:Player
IfPlayer.isPlayingAd()
returns true, returns the index of the ad group in the period currently being played. ReturnsC.INDEX_UNSET
otherwise.- Specified by:
getCurrentAdGroupIndex
in interfacePlayer
-
getCurrentAdIndexInAdGroup
public int getCurrentAdIndexInAdGroup()
Description copied from interface:Player
IfPlayer.isPlayingAd()
returns true, returns the index of the ad in its ad group. ReturnsC.INDEX_UNSET
otherwise.- Specified by:
getCurrentAdIndexInAdGroup
in interfacePlayer
-
getContentDuration
public 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
-
getContentPosition
public long getContentPosition()
Description copied from interface:Player
IfPlayer.isPlayingAd()
returnstrue
, returns the content position that will be played once all ads in the ad group have finished playing, in milliseconds. If there is no ad playing, the returned position is the same as that returned byPlayer.getCurrentPosition()
.- Specified by:
getContentPosition
in interfacePlayer
-
getContentBufferedPosition
public long getContentBufferedPosition()
Description copied from interface:Player
IfPlayer.isPlayingAd()
returnstrue
, returns an estimate of the content position in the current content up to which data is buffered, in milliseconds. If there is no ad playing, the returned position is the same as that returned byPlayer.getBufferedPosition()
.- Specified by:
getContentBufferedPosition
in interfacePlayer
-
getAudioAttributes
public AudioAttributes getAudioAttributes()
Description copied from interface:Player
Returns the attributes for audio playback.- Specified by:
getAudioAttributes
in interfacePlayer
-
setVolume
public void setVolume(float volume)
Description copied from interface:Player
Sets the audio volume, valid values are between 0 (silence) and 1 (unity gain, signal unchanged), inclusive.
-
getVolume
public float getVolume()
Description copied from interface:Player
Returns the audio volume, with 0 being silence and 1 being unity gain (signal unchanged).
-
getVideoSize
public VideoSize getVideoSize()
Description copied from interface:Player
Gets the size of the video.The video's width and height are
0
if there is no video or its size has not been determined yet.- Specified by:
getVideoSize
in interfacePlayer
- See Also:
Player.Listener.onVideoSizeChanged(VideoSize)
-
clearVideoSurface
public void clearVideoSurface()
Description copied from interface:Player
- Specified by:
clearVideoSurface
in interfacePlayer
-
clearVideoSurface
public void clearVideoSurface(@Nullable Surface surface)
Description copied from interface:Player
Clears theSurface
onto which video is being rendered if it matches the one passed. Else does nothing.- Specified by:
clearVideoSurface
in interfacePlayer
- Parameters:
surface
- The surface to clear.
-
setVideoSurface
public void setVideoSurface(@Nullable Surface surface)
Description copied from interface:Player
Sets theSurface
onto which video will be rendered. The caller is responsible for tracking the lifecycle of the surface, and must clear the surface by callingsetVideoSurface(null)
if the surface is destroyed.If the surface is held by a
SurfaceView
,TextureView
orSurfaceHolder
then it's recommended to usePlayer.setVideoSurfaceView(SurfaceView)
,Player.setVideoTextureView(TextureView)
orPlayer.setVideoSurfaceHolder(SurfaceHolder)
rather than this method, since passing the holder allows the player to track the lifecycle of the surface automatically.- Specified by:
setVideoSurface
in interfacePlayer
- Parameters:
surface
- TheSurface
.
-
setVideoSurfaceHolder
public void setVideoSurfaceHolder(@Nullable SurfaceHolder surfaceHolder)
Description copied from interface:Player
Sets theSurfaceHolder
that holds theSurface
onto which video will be rendered. The player will track the lifecycle of the surface automatically.The thread that calls the
SurfaceHolder.Callback
methods must be the thread associated withPlayer.getApplicationLooper()
.- Specified by:
setVideoSurfaceHolder
in interfacePlayer
- Parameters:
surfaceHolder
- The surface holder.
-
clearVideoSurfaceHolder
public void clearVideoSurfaceHolder(@Nullable SurfaceHolder surfaceHolder)
Description copied from interface:Player
Clears theSurfaceHolder
that holds theSurface
onto which video is being rendered if it matches the one passed. Else does nothing.- Specified by:
clearVideoSurfaceHolder
in interfacePlayer
- Parameters:
surfaceHolder
- The surface holder to clear.
-
setVideoSurfaceView
public void setVideoSurfaceView(@Nullable SurfaceView surfaceView)
Description copied from interface:Player
Sets theSurfaceView
onto which video will be rendered. The player will track the lifecycle of the surface automatically.The thread that calls the
SurfaceHolder.Callback
methods must be the thread associated withPlayer.getApplicationLooper()
.- Specified by:
setVideoSurfaceView
in interfacePlayer
- Parameters:
surfaceView
- The surface view.
-
clearVideoSurfaceView
public void clearVideoSurfaceView(@Nullable SurfaceView surfaceView)
Description copied from interface:Player
Clears theSurfaceView
onto which video is being rendered if it matches the one passed. Else does nothing.- Specified by:
clearVideoSurfaceView
in interfacePlayer
- Parameters:
surfaceView
- The texture view to clear.
-
setVideoTextureView
public void setVideoTextureView(@Nullable TextureView textureView)
Description copied from interface:Player
Sets theTextureView
onto which video will be rendered. The player will track the lifecycle of the surface automatically.The thread that calls the
TextureView.SurfaceTextureListener
methods must be the thread associated withPlayer.getApplicationLooper()
.- Specified by:
setVideoTextureView
in interfacePlayer
- Parameters:
textureView
- The texture view.
-
clearVideoTextureView
public void clearVideoTextureView(@Nullable TextureView textureView)
Description copied from interface:Player
Clears theTextureView
onto which video is being rendered if it matches the one passed. Else does nothing.- Specified by:
clearVideoTextureView
in interfacePlayer
- Parameters:
textureView
- The texture view to clear.
-
getCurrentCues
public List<Cue> getCurrentCues()
Description copied from interface:Player
Returns the currentCues
. This list may be empty.- Specified by:
getCurrentCues
in interfacePlayer
-
getDeviceInfo
public DeviceInfo getDeviceInfo()
Description copied from interface:Player
Gets the device information.- Specified by:
getDeviceInfo
in interfacePlayer
-
getDeviceVolume
public int getDeviceVolume()
Description copied from interface:Player
Gets the current volume of the device.For devices with
local playback
, the volume returned by this method varies according to the currentstream type
. The stream type is determined byAudioAttributes.usage
which can be converted to stream type withUtil.getStreamTypeForAudioUsage(int)
.For devices with
remote playback
, the volume of the remote device is returned.- Specified by:
getDeviceVolume
in interfacePlayer
-
isDeviceMuted
public boolean isDeviceMuted()
Description copied from interface:Player
Gets whether the device is muted or not.- Specified by:
isDeviceMuted
in interfacePlayer
-
setDeviceVolume
public void setDeviceVolume(int volume)
Description copied from interface:Player
Sets the volume of the device.- Specified by:
setDeviceVolume
in interfacePlayer
- Parameters:
volume
- The volume to set.
-
increaseDeviceVolume
public void increaseDeviceVolume()
Description copied from interface:Player
Increases the volume of the device.- Specified by:
increaseDeviceVolume
in interfacePlayer
-
decreaseDeviceVolume
public void decreaseDeviceVolume()
Description copied from interface:Player
Decreases the volume of the device.- Specified by:
decreaseDeviceVolume
in interfacePlayer
-
setDeviceMuted
public void setDeviceMuted(boolean muted)
Description copied from interface:Player
Sets the mute state of the device.- Specified by:
setDeviceMuted
in interfacePlayer
-
-