Class StubExoPlayer
- java.lang.Object
-
- com.google.android.exoplayer2.BasePlayer
-
- com.google.android.exoplayer2.testutil.StubPlayer
-
- com.google.android.exoplayer2.testutil.StubExoPlayer
-
public class StubExoPlayer extends StubPlayer implements ExoPlayer
An abstractExoPlayer
implementation that throwsUnsupportedOperationException
from every method.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.google.android.exoplayer2.ExoPlayer
ExoPlayer.AudioComponent, ExoPlayer.AudioOffloadListener, ExoPlayer.Builder, ExoPlayer.DeviceComponent, ExoPlayer.TextComponent, ExoPlayer.VideoComponent
-
Nested classes/interfaces inherited from interface com.google.android.exoplayer2.Player
Player.Command, Player.Commands, Player.DiscontinuityReason, Player.Event, Player.Events, Player.Listener, Player.MediaItemTransitionReason, Player.PlaybackSuppressionReason, Player.PlayWhenReadyChangeReason, Player.PositionInfo, Player.RepeatMode, Player.State, Player.TimelineChangeReason
-
-
Field Summary
-
Fields inherited from class com.google.android.exoplayer2.BasePlayer
window
-
Fields inherited from interface com.google.android.exoplayer2.ExoPlayer
DEFAULT_DETACH_SURFACE_TIMEOUT_MS, DEFAULT_RELEASE_TIMEOUT_MS
-
Fields inherited from interface com.google.android.exoplayer2.Player
COMMAND_ADJUST_DEVICE_VOLUME, COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS, COMMAND_CHANGE_MEDIA_ITEMS, COMMAND_GET_AUDIO_ATTRIBUTES, COMMAND_GET_CURRENT_MEDIA_ITEM, COMMAND_GET_DEVICE_VOLUME, COMMAND_GET_MEDIA_ITEMS_METADATA, COMMAND_GET_METADATA, COMMAND_GET_TEXT, COMMAND_GET_TIMELINE, COMMAND_GET_TRACKS, COMMAND_GET_VOLUME, COMMAND_INVALID, COMMAND_PLAY_PAUSE, COMMAND_PREPARE, COMMAND_RELEASE, 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_DEVICE_VOLUME_WITH_FLAGS, COMMAND_SET_MEDIA_ITEM, COMMAND_SET_MEDIA_ITEMS_METADATA, COMMAND_SET_PLAYLIST_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_AUDIO_ATTRIBUTES_CHANGED, EVENT_AUDIO_SESSION_ID, EVENT_AVAILABLE_COMMANDS_CHANGED, EVENT_CUES, EVENT_DEVICE_INFO_CHANGED, EVENT_DEVICE_VOLUME_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_METADATA, 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_RENDERED_FIRST_FRAME, EVENT_REPEAT_MODE_CHANGED, EVENT_SEEK_BACK_INCREMENT_CHANGED, EVENT_SEEK_FORWARD_INCREMENT_CHANGED, EVENT_SHUFFLE_MODE_ENABLED_CHANGED, EVENT_SKIP_SILENCE_ENABLED_CHANGED, EVENT_SURFACE_SIZE_CHANGED, EVENT_TIMELINE_CHANGED, EVENT_TRACK_SELECTION_PARAMETERS_CHANGED, EVENT_TRACKS_CHANGED, EVENT_VIDEO_SIZE_CHANGED, EVENT_VOLUME_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_SUPPRESSED_TOO_LONG, PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST, PLAYBACK_SUPPRESSION_REASON_NONE, PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOSS, PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_ROUTE, 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 StubExoPlayer()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addAnalyticsListener(AnalyticsListener listener)
Adds anAnalyticsListener
to receive analytics events.void
addAudioOffloadListener(ExoPlayer.AudioOffloadListener listener)
Adds a listener to receive audio offload events.void
addMediaSource(int index, MediaSource mediaSource)
Adds a media source at the given index of the playlist.void
addMediaSource(MediaSource mediaSource)
Adds a media source to the end of the playlist.void
addMediaSources(int index, List<MediaSource> mediaSources)
Adds a list of media sources at the given index of the playlist.void
addMediaSources(List<MediaSource> mediaSources)
Adds a list of media sources to the end of the playlist.void
clearAuxEffectInfo()
Detaches any previously attached auxiliary audio effect from the underlying audio track.void
clearCameraMotionListener(CameraMotionListener listener)
Clears the listener which receives camera motion events if it matches the one passed.void
clearVideoFrameMetadataListener(VideoFrameMetadataListener listener)
Clears the listener which receives video frame metadata events if it matches the one passed.PlayerMessage
createMessage(PlayerMessage.Target target)
Creates a message that can be sent to aPlayerMessage.Target
.boolean
experimentalIsSleepingForOffload()
Returns whether the player has paused its main loop to save power in offload scheduling mode.void
experimentalSetOffloadSchedulingEnabled(boolean offloadSchedulingEnabled)
Sets whether audio offload scheduling is enabled.AnalyticsCollector
getAnalyticsCollector()
Returns theAnalyticsCollector
used for collecting analytics events.ExoPlayer.AudioComponent
getAudioComponent()
Deprecated.UseExoPlayer
, as theExoPlayer.AudioComponent
methods are defined by that interface.DecoderCounters
getAudioDecoderCounters()
ReturnsDecoderCounters
for audio, or null if no audio is being played.Format
getAudioFormat()
Returns the audio format currently being played, or null if no audio is being played.int
getAudioSessionId()
Returns the audio session identifier, orC.AUDIO_SESSION_ID_UNSET
if not set.Clock
getClock()
Returns theClock
used for playback.TrackGroupArray
getCurrentTrackGroups()
Deprecated.TrackSelectionArray
getCurrentTrackSelections()
Deprecated.ExoPlayer.DeviceComponent
getDeviceComponent()
Deprecated.UsePlayer
, as theExoPlayer.DeviceComponent
methods are defined by that interface.boolean
getPauseAtEndOfMediaItems()
Returns whether the player pauses playback at the end of each media item.Looper
getPlaybackLooper()
Returns theLooper
associated with the playback thread.ExoPlaybackException
getPlayerError()
Returns the error that caused playback to fail.Renderer
getRenderer(int index)
Returns the renderer at the given index.int
getRendererCount()
Returns the number of renderers.int
getRendererType(int index)
Returns the track type that the renderer at a given index handles.SeekParameters
getSeekParameters()
Returns the currently activeSeekParameters
of the player.boolean
getSkipSilenceEnabled()
Returns whether skipping silences in the audio stream is enabled.ExoPlayer.TextComponent
getTextComponent()
Deprecated.UsePlayer
, as theExoPlayer.TextComponent
methods are defined by that interface.TrackSelector
getTrackSelector()
Returns the track selector that this player uses, or null if track selection is not supported.int
getVideoChangeFrameRateStrategy()
Returns theC.VideoChangeFrameRateStrategy
.ExoPlayer.VideoComponent
getVideoComponent()
Deprecated.UseExoPlayer
, as theExoPlayer.VideoComponent
methods are defined by that interface.DecoderCounters
getVideoDecoderCounters()
ReturnsDecoderCounters
for video, or null if no video is being played.Format
getVideoFormat()
Returns the video format currently being played, or null if no video is being played.int
getVideoScalingMode()
Returns theC.VideoScalingMode
.boolean
isTunnelingEnabled()
Returns whether tunneling is enabled for the currently selected tracks.void
prepare(MediaSource mediaSource)
Deprecated.UsesetMediaSource(MediaSource)
andStubPlayer.prepare()
instead.void
prepare(MediaSource mediaSource, boolean resetPosition, boolean resetState)
Deprecated.UsesetMediaSource(MediaSource, boolean)
andStubPlayer.prepare()
instead.void
removeAnalyticsListener(AnalyticsListener listener)
Removes anAnalyticsListener
.void
removeAudioOffloadListener(ExoPlayer.AudioOffloadListener listener)
Removes a listener of audio offload events.void
setAudioAttributes(AudioAttributes audioAttributes, boolean handleAudioFocus)
Sets the attributes for audio playback, used by the underlying audio track.void
setAudioSessionId(int audioSessionId)
Sets the ID of the audio session to attach to the underlyingAudioTrack
.void
setAuxEffectInfo(AuxEffectInfo auxEffectInfo)
Sets information on an auxiliary audio effect to attach to the underlying audio track.void
setCameraMotionListener(CameraMotionListener listener)
Sets a listener of camera motion events.void
setForegroundMode(boolean foregroundMode)
Sets whether the player is allowed to keep holding limited resources such as video decoders, even when in the idle state.void
setHandleAudioBecomingNoisy(boolean handleAudioBecomingNoisy)
Sets whether the player should pause automatically when audio is rerouted from a headset to device speakers.void
setMediaSource(MediaSource mediaSource)
Clears the playlist, adds the specifiedMediaSource
and resets the position to the default position.void
setMediaSource(MediaSource mediaSource, boolean resetPosition)
Clears the playlist and adds the specifiedMediaSource
.void
setMediaSource(MediaSource mediaSource, long startPositionMs)
Clears the playlist and adds the specifiedMediaSource
.void
setMediaSources(List<MediaSource> mediaSources)
Clears the playlist, adds the specifiedMediaSources
and resets the position to the default position.void
setMediaSources(List<MediaSource> mediaSources, boolean resetPosition)
Clears the playlist and adds the specifiedMediaSources
.void
setMediaSources(List<MediaSource> mediaSources, int startMediaItemIndex, long startPositionMs)
Clears the playlist and adds the specifiedMediaSources
.void
setPauseAtEndOfMediaItems(boolean pauseAtEndOfMediaItems)
Sets whether to pause playback at the end of each media item.void
setPreferredAudioDevice(AudioDeviceInfo audioDeviceInfo)
Sets the preferred audio device.void
setPriorityTaskManager(PriorityTaskManager priorityTaskManager)
Sets aPriorityTaskManager
, or null to clear a previously set priority task manager.void
setSeekParameters(SeekParameters seekParameters)
Sets the parameters that control how seek operations are performed.void
setShuffleOrder(ShuffleOrder shuffleOrder)
Sets the shuffle order.void
setSkipSilenceEnabled(boolean skipSilenceEnabled)
Sets whether skipping silences in the audio stream is enabled.void
setVideoChangeFrameRateStrategy(int videoChangeFrameRateStrategy)
Sets aC.VideoChangeFrameRateStrategy
that will be used by the player when provided with a video outputSurface
.void
setVideoEffects(List<Effect> videoEffects)
Sets aList
of video effects that will be applied to each video frame.void
setVideoFrameMetadataListener(VideoFrameMetadataListener listener)
Sets a listener to receive video frame metadata events.void
setVideoScalingMode(int videoScalingMode)
Sets theC.VideoScalingMode
.void
setWakeMode(int wakeMode)
Sets how the player should keep the device awake for playback when the screen is off.-
Methods inherited from class com.google.android.exoplayer2.testutil.StubPlayer
addListener, addMediaItems, clearVideoSurface, clearVideoSurface, clearVideoSurfaceHolder, clearVideoSurfaceView, clearVideoTextureView, decreaseDeviceVolume, decreaseDeviceVolume, getApplicationLooper, getAudioAttributes, getAvailableCommands, getBufferedPosition, getContentBufferedPosition, getContentPosition, getCurrentAdGroupIndex, getCurrentAdIndexInAdGroup, getCurrentCues, getCurrentMediaItemIndex, getCurrentPeriodIndex, getCurrentPosition, getCurrentTimeline, getCurrentTracks, getDeviceInfo, getDeviceVolume, getDuration, getMaxSeekToPreviousPosition, getMediaMetadata, getPlaybackParameters, getPlaybackState, getPlaybackSuppressionReason, getPlaylistMetadata, getPlayWhenReady, getRepeatMode, getSeekBackIncrement, getSeekForwardIncrement, getShuffleModeEnabled, getSurfaceSize, getTotalBufferedDuration, getTrackSelectionParameters, getVideoSize, getVolume, increaseDeviceVolume, increaseDeviceVolume, isDeviceMuted, isLoading, isPlayingAd, moveMediaItems, prepare, release, removeListener, removeMediaItems, replaceMediaItems, seekTo, setDeviceMuted, setDeviceMuted, setDeviceVolume, setDeviceVolume, setMediaItems, setMediaItems, setPlaybackParameters, setPlaylistMetadata, setPlayWhenReady, setRepeatMode, setShuffleModeEnabled, setTrackSelectionParameters, setVideoSurface, setVideoSurfaceHolder, setVideoSurfaceView, setVideoTextureView, setVolume, stop
-
Methods inherited from class com.google.android.exoplayer2.BasePlayer
addMediaItem, addMediaItem, addMediaItems, canAdvertiseSession, clearMediaItems, getBufferedPercentage, getContentDuration, getCurrentLiveOffset, getCurrentManifest, getCurrentMediaItem, getCurrentWindowIndex, getMediaItemAt, getMediaItemCount, getNextMediaItemIndex, getNextWindowIndex, getPreviousMediaItemIndex, getPreviousWindowIndex, hasNext, hasNextMediaItem, hasNextWindow, hasPrevious, hasPreviousMediaItem, hasPreviousWindow, isCommandAvailable, isCurrentMediaItemDynamic, isCurrentMediaItemLive, isCurrentMediaItemSeekable, isCurrentWindowDynamic, isCurrentWindowLive, isCurrentWindowSeekable, isPlaying, moveMediaItem, next, pause, play, previous, removeMediaItem, replaceMediaItem, seekBack, seekForward, seekTo, seekTo, seekToDefaultPosition, seekToDefaultPosition, seekToNext, seekToNextMediaItem, seekToNextWindow, seekToPrevious, seekToPreviousMediaItem, seekToPreviousWindow, setMediaItem, setMediaItem, setMediaItem, setMediaItems, setPlaybackSpeed
-
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, addMediaItem, addMediaItem, addMediaItems, addMediaItems, canAdvertiseSession, clearMediaItems, clearVideoSurface, clearVideoSurface, clearVideoSurfaceHolder, clearVideoSurfaceView, clearVideoTextureView, decreaseDeviceVolume, decreaseDeviceVolume, getApplicationLooper, getAudioAttributes, getAvailableCommands, getBufferedPercentage, getBufferedPosition, getContentBufferedPosition, getContentDuration, getContentPosition, getCurrentAdGroupIndex, getCurrentAdIndexInAdGroup, getCurrentCues, getCurrentLiveOffset, getCurrentManifest, getCurrentMediaItem, getCurrentMediaItemIndex, getCurrentPeriodIndex, getCurrentPosition, getCurrentTimeline, getCurrentTracks, getCurrentWindowIndex, getDeviceInfo, getDeviceVolume, getDuration, getMaxSeekToPreviousPosition, getMediaItemAt, getMediaItemCount, getMediaMetadata, getNextMediaItemIndex, getNextWindowIndex, getPlaybackParameters, getPlaybackState, getPlaybackSuppressionReason, getPlaylistMetadata, getPlayWhenReady, getPreviousMediaItemIndex, getPreviousWindowIndex, getRepeatMode, getSeekBackIncrement, getSeekForwardIncrement, getShuffleModeEnabled, getSurfaceSize, getTotalBufferedDuration, getTrackSelectionParameters, getVideoSize, getVolume, hasNext, hasNextMediaItem, hasNextWindow, hasPrevious, hasPreviousMediaItem, hasPreviousWindow, increaseDeviceVolume, increaseDeviceVolume, isCommandAvailable, isCurrentMediaItemDynamic, isCurrentMediaItemLive, isCurrentMediaItemSeekable, isCurrentWindowDynamic, isCurrentWindowLive, isCurrentWindowSeekable, isDeviceMuted, isLoading, isPlaying, isPlayingAd, moveMediaItem, moveMediaItems, next, pause, play, prepare, previous, release, removeListener, removeMediaItem, removeMediaItems, replaceMediaItem, replaceMediaItems, seekBack, seekForward, seekTo, seekTo, seekToDefaultPosition, seekToDefaultPosition, seekToNext, seekToNextMediaItem, seekToNextWindow, seekToPrevious, seekToPreviousMediaItem, seekToPreviousWindow, setDeviceMuted, setDeviceMuted, setDeviceVolume, setDeviceVolume, setMediaItem, setMediaItem, setMediaItem, setMediaItems, setMediaItems, setMediaItems, setPlaybackParameters, setPlaybackSpeed, setPlaylistMetadata, setPlayWhenReady, setRepeatMode, setShuffleModeEnabled, setTrackSelectionParameters, setVideoSurface, setVideoSurfaceHolder, setVideoSurfaceView, setVideoTextureView, setVolume, stop
-
-
-
-
Method Detail
-
getAudioComponent
@Deprecated public ExoPlayer.AudioComponent getAudioComponent()
Deprecated.UseExoPlayer
, as theExoPlayer.AudioComponent
methods are defined by that interface.- Specified by:
getAudioComponent
in interfaceExoPlayer
-
getVideoComponent
@Deprecated public ExoPlayer.VideoComponent getVideoComponent()
Deprecated.UseExoPlayer
, as theExoPlayer.VideoComponent
methods are defined by that interface.- Specified by:
getVideoComponent
in interfaceExoPlayer
-
getTextComponent
@Deprecated public ExoPlayer.TextComponent getTextComponent()
Deprecated.UsePlayer
, as theExoPlayer.TextComponent
methods are defined by that interface.- Specified by:
getTextComponent
in interfaceExoPlayer
-
getDeviceComponent
@Deprecated public ExoPlayer.DeviceComponent getDeviceComponent()
Deprecated.UsePlayer
, as theExoPlayer.DeviceComponent
methods are defined by that interface.- Specified by:
getDeviceComponent
in interfaceExoPlayer
-
getPlaybackLooper
public Looper getPlaybackLooper()
Description copied from interface:ExoPlayer
Returns theLooper
associated with the playback thread.This method may be called from any thread.
- Specified by:
getPlaybackLooper
in interfaceExoPlayer
-
getClock
public Clock getClock()
Description copied from interface:ExoPlayer
Returns theClock
used for playback.This method can be called from any thread.
-
addAudioOffloadListener
public void addAudioOffloadListener(ExoPlayer.AudioOffloadListener listener)
Description copied from interface:ExoPlayer
Adds a listener to receive audio offload events.This method can be called from any thread.
- Specified by:
addAudioOffloadListener
in interfaceExoPlayer
- Parameters:
listener
- The listener to register.
-
removeAudioOffloadListener
public void removeAudioOffloadListener(ExoPlayer.AudioOffloadListener listener)
Description copied from interface:ExoPlayer
Removes a listener of audio offload events.- Specified by:
removeAudioOffloadListener
in interfaceExoPlayer
- Parameters:
listener
- The listener to unregister.
-
getAnalyticsCollector
public AnalyticsCollector getAnalyticsCollector()
Description copied from interface:ExoPlayer
Returns theAnalyticsCollector
used for collecting analytics events.- Specified by:
getAnalyticsCollector
in interfaceExoPlayer
-
addAnalyticsListener
public void addAnalyticsListener(AnalyticsListener listener)
Description copied from interface:ExoPlayer
Adds anAnalyticsListener
to receive analytics events.This method can be called from any thread.
- Specified by:
addAnalyticsListener
in interfaceExoPlayer
- Parameters:
listener
- The listener to be added.
-
removeAnalyticsListener
public void removeAnalyticsListener(AnalyticsListener listener)
Description copied from interface:ExoPlayer
Removes anAnalyticsListener
.- Specified by:
removeAnalyticsListener
in interfaceExoPlayer
- Parameters:
listener
- The listener to be removed.
-
getPlayerError
public ExoPlaybackException 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 interfaceExoPlayer
- Specified by:
getPlayerError
in interfacePlayer
- Overrides:
getPlayerError
in classStubPlayer
- Returns:
- The error, or
null
. - See Also:
Player.Listener.onPlayerError(PlaybackException)
-
prepare
@Deprecated public void prepare(MediaSource mediaSource)
Deprecated.UsesetMediaSource(MediaSource)
andStubPlayer.prepare()
instead.
-
prepare
@Deprecated public void prepare(MediaSource mediaSource, boolean resetPosition, boolean resetState)
Deprecated.UsesetMediaSource(MediaSource, boolean)
andStubPlayer.prepare()
instead.
-
setMediaSource
public void setMediaSource(MediaSource mediaSource)
Description copied from interface:ExoPlayer
Clears the playlist, adds the specifiedMediaSource
and resets the position to the default position.- Specified by:
setMediaSource
in interfaceExoPlayer
- Parameters:
mediaSource
- The newMediaSource
.
-
setMediaSource
public void setMediaSource(MediaSource mediaSource, long startPositionMs)
Description copied from interface:ExoPlayer
Clears the playlist and adds the specifiedMediaSource
.- Specified by:
setMediaSource
in interfaceExoPlayer
- Parameters:
mediaSource
- The newMediaSource
.startPositionMs
- The position in milliseconds to start playback from.
-
setMediaSource
public void setMediaSource(MediaSource mediaSource, boolean resetPosition)
Description copied from interface:ExoPlayer
Clears the playlist and adds the specifiedMediaSource
.- Specified by:
setMediaSource
in interfaceExoPlayer
- Parameters:
mediaSource
- The newMediaSource
.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()
.
-
setMediaSources
public void setMediaSources(List<MediaSource> mediaSources)
Description copied from interface:ExoPlayer
Clears the playlist, adds the specifiedMediaSources
and resets the position to the default position.- Specified by:
setMediaSources
in interfaceExoPlayer
- Parameters:
mediaSources
- The newMediaSources
.
-
setMediaSources
public void setMediaSources(List<MediaSource> mediaSources, boolean resetPosition)
Description copied from interface:ExoPlayer
Clears the playlist and adds the specifiedMediaSources
.- Specified by:
setMediaSources
in interfaceExoPlayer
- Parameters:
mediaSources
- The newMediaSources
.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()
.
-
setMediaSources
public void setMediaSources(List<MediaSource> mediaSources, int startMediaItemIndex, long startPositionMs)
Description copied from interface:ExoPlayer
Clears the playlist and adds the specifiedMediaSources
.- Specified by:
setMediaSources
in interfaceExoPlayer
- Parameters:
mediaSources
- The newMediaSources
.startMediaItemIndex
- The media item 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 given media item is used. In any case, ifstartMediaItemIndex
is set toC.INDEX_UNSET
, this parameter is ignored and the position is not reset at all.
-
addMediaSource
public void addMediaSource(MediaSource mediaSource)
Description copied from interface:ExoPlayer
Adds a media source to the end of the playlist.- Specified by:
addMediaSource
in interfaceExoPlayer
- Parameters:
mediaSource
- TheMediaSource
to add.
-
addMediaSource
public void addMediaSource(int index, MediaSource mediaSource)
Description copied from interface:ExoPlayer
Adds a media source at the given index of the playlist.- Specified by:
addMediaSource
in interfaceExoPlayer
- Parameters:
index
- The index at which to add the source.mediaSource
- TheMediaSource
to add.
-
addMediaSources
public void addMediaSources(List<MediaSource> mediaSources)
Description copied from interface:ExoPlayer
Adds a list of media sources to the end of the playlist.- Specified by:
addMediaSources
in interfaceExoPlayer
- Parameters:
mediaSources
- TheMediaSources
to add.
-
addMediaSources
public void addMediaSources(int index, List<MediaSource> mediaSources)
Description copied from interface:ExoPlayer
Adds a list of media sources at the given index of the playlist.- Specified by:
addMediaSources
in interfaceExoPlayer
- Parameters:
index
- The index at which to add the media sources.mediaSources
- TheMediaSources
to add.
-
setShuffleOrder
public void setShuffleOrder(ShuffleOrder shuffleOrder)
Description copied from interface:ExoPlayer
Sets the shuffle order.The
ShuffleOrder
passed must have the same length as the current playlist (Player.getMediaItemCount()
).- Specified by:
setShuffleOrder
in interfaceExoPlayer
- Parameters:
shuffleOrder
- The shuffle order.
-
setAudioAttributes
public void setAudioAttributes(AudioAttributes audioAttributes, boolean handleAudioFocus)
Description copied from interface:ExoPlayer
Sets the attributes for audio playback, used by the underlying audio track. If not set, the default audio attributes will be used. They are suitable for general media playback.Setting the audio attributes during playback may introduce a short gap in audio output as the audio track is recreated. A new audio session id will also be generated.
If tunneling is enabled by the track selector, the specified audio attributes will be ignored, but they will take effect if audio is later played without tunneling.
If the device is running a build before platform API version 21, audio attributes cannot be set directly on the underlying audio track. In this case, the usage will be mapped onto an equivalent stream type using
Util.getStreamTypeForAudioUsage(int)
.If audio focus should be handled, the
AudioAttributes.usage
must beC.USAGE_MEDIA
orC.USAGE_GAME
. Other usages will throw anIllegalArgumentException
.- Specified by:
setAudioAttributes
in interfaceExoPlayer
- Parameters:
audioAttributes
- The attributes to use for audio playback.handleAudioFocus
- True if the player should handle audio focus, false otherwise.
-
setAudioSessionId
public void setAudioSessionId(int audioSessionId)
Description copied from interface:ExoPlayer
Sets the ID of the audio session to attach to the underlyingAudioTrack
.The audio session ID can be generated using
Util.generateAudioSessionIdV21(Context)
for API 21+.- Specified by:
setAudioSessionId
in interfaceExoPlayer
- Parameters:
audioSessionId
- The audio session ID, orC.AUDIO_SESSION_ID_UNSET
if it should be generated by the framework.
-
getAudioSessionId
public int getAudioSessionId()
Description copied from interface:ExoPlayer
Returns the audio session identifier, orC.AUDIO_SESSION_ID_UNSET
if not set.- Specified by:
getAudioSessionId
in interfaceExoPlayer
-
setAuxEffectInfo
public void setAuxEffectInfo(AuxEffectInfo auxEffectInfo)
Description copied from interface:ExoPlayer
Sets information on an auxiliary audio effect to attach to the underlying audio track.- Specified by:
setAuxEffectInfo
in interfaceExoPlayer
-
clearAuxEffectInfo
public void clearAuxEffectInfo()
Description copied from interface:ExoPlayer
Detaches any previously attached auxiliary audio effect from the underlying audio track.- Specified by:
clearAuxEffectInfo
in interfaceExoPlayer
-
setPreferredAudioDevice
public void setPreferredAudioDevice(@Nullable AudioDeviceInfo audioDeviceInfo)
Description copied from interface:ExoPlayer
Sets the preferred audio device.- Specified by:
setPreferredAudioDevice
in interfaceExoPlayer
- Parameters:
audioDeviceInfo
- The preferred audio device, or null to restore the default.
-
setSkipSilenceEnabled
public void setSkipSilenceEnabled(boolean skipSilenceEnabled)
Description copied from interface:ExoPlayer
Sets whether skipping silences in the audio stream is enabled.- Specified by:
setSkipSilenceEnabled
in interfaceExoPlayer
- Parameters:
skipSilenceEnabled
- Whether skipping silences in the audio stream is enabled.
-
getSkipSilenceEnabled
public boolean getSkipSilenceEnabled()
Description copied from interface:ExoPlayer
Returns whether skipping silences in the audio stream is enabled.- Specified by:
getSkipSilenceEnabled
in interfaceExoPlayer
-
setVideoEffects
public void setVideoEffects(List<Effect> videoEffects)
Description copied from interface:ExoPlayer
Sets aList
of video effects that will be applied to each video frame.The following limitations exist for using video effects:
- This feature works only with the default
MediaCodecVideoRenderer
and not custom or extension video renderers. - This feature does not work with DRM-protected contents.
- This method should be called before calling
ExoPlayer.prepare(com.google.android.exoplayer2.source.MediaSource)
.
- Specified by:
setVideoEffects
in interfaceExoPlayer
- Parameters:
videoEffects
- TheList
of video effects to apply.
- This feature works only with the default
-
setVideoScalingMode
public void setVideoScalingMode(int videoScalingMode)
Description copied from interface:ExoPlayer
Sets theC.VideoScalingMode
.The scaling mode only applies if a
MediaCodec
-based videoRenderer
is enabled and if the output surface is owned by aSurfaceView
.- Specified by:
setVideoScalingMode
in interfaceExoPlayer
- Parameters:
videoScalingMode
- TheC.VideoScalingMode
.
-
getVideoScalingMode
public int getVideoScalingMode()
Description copied from interface:ExoPlayer
Returns theC.VideoScalingMode
.- Specified by:
getVideoScalingMode
in interfaceExoPlayer
-
setVideoChangeFrameRateStrategy
public void setVideoChangeFrameRateStrategy(int videoChangeFrameRateStrategy)
Description copied from interface:ExoPlayer
Sets aC.VideoChangeFrameRateStrategy
that will be used by the player when provided with a video outputSurface
.The strategy only applies if a
MediaCodec
-based videoRenderer
is enabled. Applications wishing to useSurface.CHANGE_FRAME_RATE_ALWAYS
should set the mode toC.VIDEO_CHANGE_FRAME_RATE_STRATEGY_OFF
to disable calls toSurface.setFrameRate(float, int, int)
from ExoPlayer, and should then callSurface.setFrameRate(float, int, int)
directly from application code.- Specified by:
setVideoChangeFrameRateStrategy
in interfaceExoPlayer
- Parameters:
videoChangeFrameRateStrategy
- AC.VideoChangeFrameRateStrategy
.
-
getVideoChangeFrameRateStrategy
public int getVideoChangeFrameRateStrategy()
Description copied from interface:ExoPlayer
Returns theC.VideoChangeFrameRateStrategy
.- Specified by:
getVideoChangeFrameRateStrategy
in interfaceExoPlayer
-
setVideoFrameMetadataListener
public void setVideoFrameMetadataListener(VideoFrameMetadataListener listener)
Description copied from interface:ExoPlayer
Sets a listener to receive video frame metadata events.This method is intended to be called by the same component that sets the
Surface
onto which video will be rendered. If using ExoPlayer's standard UI components, this method should not be called directly from application code.- Specified by:
setVideoFrameMetadataListener
in interfaceExoPlayer
- Parameters:
listener
- The listener.
-
clearVideoFrameMetadataListener
public void clearVideoFrameMetadataListener(VideoFrameMetadataListener listener)
Description copied from interface:ExoPlayer
Clears the listener which receives video frame metadata events if it matches the one passed. Else does nothing.- Specified by:
clearVideoFrameMetadataListener
in interfaceExoPlayer
- Parameters:
listener
- The listener to clear.
-
setCameraMotionListener
public void setCameraMotionListener(CameraMotionListener listener)
Description copied from interface:ExoPlayer
Sets a listener of camera motion events.- Specified by:
setCameraMotionListener
in interfaceExoPlayer
- Parameters:
listener
- The listener.
-
clearCameraMotionListener
public void clearCameraMotionListener(CameraMotionListener listener)
Description copied from interface:ExoPlayer
Clears the listener which receives camera motion events if it matches the one passed. Else does nothing.- Specified by:
clearCameraMotionListener
in interfaceExoPlayer
- Parameters:
listener
- The listener to clear.
-
setSeekParameters
public void setSeekParameters(@Nullable SeekParameters seekParameters)
Description copied from interface:ExoPlayer
Sets the parameters that control how seek operations are performed.- Specified by:
setSeekParameters
in interfaceExoPlayer
- Parameters:
seekParameters
- The seek parameters, ornull
to use the defaults.
-
getSeekParameters
public SeekParameters getSeekParameters()
Description copied from interface:ExoPlayer
Returns the currently activeSeekParameters
of the player.- Specified by:
getSeekParameters
in interfaceExoPlayer
-
createMessage
public PlayerMessage createMessage(PlayerMessage.Target target)
Description copied from interface:ExoPlayer
Creates a message that can be sent to aPlayerMessage.Target
. By default, the message will be delivered immediately without blocking on the playback thread. The defaultPlayerMessage.getType()
is 0 and the defaultPlayerMessage.getPayload()
is null. If a position is specified withPlayerMessage.setPosition(long)
, the message will be delivered at this position in the current media item defined byPlayer.getCurrentMediaItemIndex()
. Alternatively, the message can be sent at a specific mediaItem usingPlayerMessage.setPosition(int, long)
.- Specified by:
createMessage
in interfaceExoPlayer
-
getRendererCount
public int getRendererCount()
Description copied from interface:ExoPlayer
Returns the number of renderers.- Specified by:
getRendererCount
in interfaceExoPlayer
-
getRendererType
public int getRendererType(int index)
Description copied from interface:ExoPlayer
Returns the track type that the renderer at a given index handles.For example, a video renderer will return
C.TRACK_TYPE_VIDEO
, an audio renderer will returnC.TRACK_TYPE_AUDIO
and a text renderer will returnC.TRACK_TYPE_TEXT
.- Specified by:
getRendererType
in interfaceExoPlayer
- Parameters:
index
- The index of the renderer.- Returns:
- The
track type
that the renderer handles.
-
getRenderer
public Renderer getRenderer(int index)
Description copied from interface:ExoPlayer
Returns the renderer at the given index.- Specified by:
getRenderer
in interfaceExoPlayer
- Parameters:
index
- The index of the renderer.- Returns:
- The renderer at this index.
-
getTrackSelector
@Nullable public TrackSelector getTrackSelector()
Description copied from interface:ExoPlayer
Returns the track selector that this player uses, or null if track selection is not supported.- Specified by:
getTrackSelector
in interfaceExoPlayer
-
getCurrentTrackGroups
@Deprecated public TrackGroupArray getCurrentTrackGroups()
Deprecated.Description copied from interface:ExoPlayer
Returns the available track groups.- Specified by:
getCurrentTrackGroups
in interfaceExoPlayer
- See Also:
Player.Listener.onTracksChanged(Tracks)
-
getCurrentTrackSelections
@Deprecated public TrackSelectionArray getCurrentTrackSelections()
Deprecated.Description copied from interface:ExoPlayer
Returns the current track selections for each renderer, which may includenull
elements if some renderers do not have any selected tracks.- Specified by:
getCurrentTrackSelections
in interfaceExoPlayer
- See Also:
Player.Listener.onTracksChanged(Tracks)
-
setForegroundMode
public void setForegroundMode(boolean foregroundMode)
Description copied from interface:ExoPlayer
Sets whether the player is allowed to keep holding limited resources such as video decoders, even when in the idle state. By doing so, the player may be able to reduce latency when starting to play another piece of content for which the same resources are required.This mode should be used with caution, since holding limited resources may prevent other players of media components from acquiring them. It should only be enabled when both of the following conditions are true:
- The application that owns the player is in the foreground.
- The player is used in a way that may benefit from foreground mode. For this to be true,
the same player instance must be used to play multiple pieces of content, and there must
be gaps between the playbacks (i.e.
Player.stop()
is called to halt one playback, andExoPlayer.prepare(com.google.android.exoplayer2.source.MediaSource)
is called some time later to start a new one).
Note that foreground mode is not useful for switching between content without gaps between the playbacks. For this use case
Player.stop()
does not need to be called, and simply callingExoPlayer.prepare(com.google.android.exoplayer2.source.MediaSource)
for the new media will cause limited resources to be retained even if foreground mode is not enabled.If foreground mode is enabled, it's the application's responsibility to disable it when the conditions described above no longer hold.
- Specified by:
setForegroundMode
in interfaceExoPlayer
- Parameters:
foregroundMode
- Whether the player is allowed to keep limited resources even when in the idle state.
-
setPauseAtEndOfMediaItems
public void setPauseAtEndOfMediaItems(boolean pauseAtEndOfMediaItems)
Description copied from interface:ExoPlayer
Sets whether to pause playback at the end of each media item.This means the player will pause at the end of each window in the current
timeline
. Listeners will be informed by a call toPlayer.Listener.onPlayWhenReadyChanged(boolean, int)
with the reasonPlayer.PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM
when this happens.- Specified by:
setPauseAtEndOfMediaItems
in interfaceExoPlayer
- Parameters:
pauseAtEndOfMediaItems
- Whether to pause playback at the end of each media item.
-
getPauseAtEndOfMediaItems
public boolean getPauseAtEndOfMediaItems()
Description copied from interface:ExoPlayer
Returns whether the player pauses playback at the end of each media item.- Specified by:
getPauseAtEndOfMediaItems
in interfaceExoPlayer
- See Also:
ExoPlayer.setPauseAtEndOfMediaItems(boolean)
-
getAudioFormat
@Nullable public Format getAudioFormat()
Description copied from interface:ExoPlayer
Returns the audio format currently being played, or null if no audio is being played.- Specified by:
getAudioFormat
in interfaceExoPlayer
-
getVideoFormat
@Nullable public Format getVideoFormat()
Description copied from interface:ExoPlayer
Returns the video format currently being played, or null if no video is being played.- Specified by:
getVideoFormat
in interfaceExoPlayer
-
getAudioDecoderCounters
@Nullable public DecoderCounters getAudioDecoderCounters()
Description copied from interface:ExoPlayer
ReturnsDecoderCounters
for audio, or null if no audio is being played.- Specified by:
getAudioDecoderCounters
in interfaceExoPlayer
-
getVideoDecoderCounters
@Nullable public DecoderCounters getVideoDecoderCounters()
Description copied from interface:ExoPlayer
ReturnsDecoderCounters
for video, or null if no video is being played.- Specified by:
getVideoDecoderCounters
in interfaceExoPlayer
-
setHandleAudioBecomingNoisy
public void setHandleAudioBecomingNoisy(boolean handleAudioBecomingNoisy)
Description copied from interface:ExoPlayer
Sets whether the player should pause automatically when audio is rerouted from a headset to device speakers. See the audio becoming noisy documentation for more information.- Specified by:
setHandleAudioBecomingNoisy
in interfaceExoPlayer
- Parameters:
handleAudioBecomingNoisy
- Whether the player should pause automatically when audio is rerouted from a headset to device speakers.
-
setWakeMode
public void setWakeMode(int wakeMode)
Description copied from interface:ExoPlayer
Sets how the player should keep the device awake for playback when the screen is off.Enabling this feature requires the
Manifest.permission.WAKE_LOCK
permission. It should be used together with a foregroundService
for use cases where playback occurs and the screen is off (e.g. background audio playback). It is not useful when the screen will be kept on during playback (e.g. foreground video playback).When enabled, the locks (
PowerManager.WakeLock
/WifiManager.WifiLock
) will be held whenever the player is in thePlayer.STATE_READY
orPlayer.STATE_BUFFERING
states withplayWhenReady = true
. The locks held depends on the specifiedC.WakeMode
.- Specified by:
setWakeMode
in interfaceExoPlayer
- Parameters:
wakeMode
- TheC.WakeMode
option to keep the device awake during playback.
-
setPriorityTaskManager
public void setPriorityTaskManager(@Nullable PriorityTaskManager priorityTaskManager)
Description copied from interface:ExoPlayer
Sets aPriorityTaskManager
, or null to clear a previously set priority task manager.The priority
C.PRIORITY_PLAYBACK
will be set while the player is loading.- Specified by:
setPriorityTaskManager
in interfaceExoPlayer
- Parameters:
priorityTaskManager
- ThePriorityTaskManager
, or null to clear a previously set priority task manager.
-
experimentalSetOffloadSchedulingEnabled
public void experimentalSetOffloadSchedulingEnabled(boolean offloadSchedulingEnabled)
Description copied from interface:ExoPlayer
Sets whether audio offload scheduling is enabled. If enabled, ExoPlayer's main loop will run as rarely as possible when playing an audio stream using audio offload.Only use this scheduling mode if the player is not displaying anything to the user. For example when the application is in the background, or the screen is off. The player state (including position) is rarely updated (roughly between every 10 seconds and 1 minute).
While offload scheduling is enabled, player events may be delivered severely delayed and apps should not interact with the player. When returning to the foreground, disable offload scheduling and wait for
ExoPlayer.AudioOffloadListener.onExperimentalOffloadSchedulingEnabledChanged(boolean)
to be called withoffloadSchedulingEnabled = false
before interacting with the player.This mode should save significant power when the phone is playing offload audio with the screen off.
This mode only has an effect when playing an audio track in offload mode, which requires all the following:
- Audio offload rendering is enabled in
DefaultRenderersFactory.setEnableAudioOffload(boolean)
or the equivalent option passed toDefaultAudioSink.Builder.setOffloadMode(@com.google.android.exoplayer2.audio.DefaultAudioSink.OffloadMode int)
. - An audio track is playing in a format that the device supports offloading (for example, MP3 or AAC).
- The
AudioSink
is playing with an offloadAudioTrack
.
The state where ExoPlayer main loop has been paused to save power during offload playback can be queried with
ExoPlayer.experimentalIsSleepingForOffload()
.This method is experimental, and will be renamed or removed in a future release.
- Specified by:
experimentalSetOffloadSchedulingEnabled
in interfaceExoPlayer
- Parameters:
offloadSchedulingEnabled
- Whether to enable offload scheduling.
- Audio offload rendering is enabled in
-
experimentalIsSleepingForOffload
public boolean experimentalIsSleepingForOffload()
Description copied from interface:ExoPlayer
Returns whether the player has paused its main loop to save power in offload scheduling mode.
-
isTunnelingEnabled
public boolean isTunnelingEnabled()
Description copied from interface:ExoPlayer
Returns whether tunneling is enabled for the currently selected tracks.- Specified by:
isTunnelingEnabled
in interfaceExoPlayer
- See Also:
Player.Listener.onTracksChanged(Tracks)
-
-