Back to Exoplayer

StubExoPlayer (ExoPlayer library)

docs/doc/reference/com/google/android/exoplayer2/testutil/StubExoPlayer.html

latest65.5 KB
Original Source

Package com.google.android.exoplayer2.testutil

Class StubExoPlayer


public classStubExoPlayerextends[StubPlayer](StubPlayer.html "class in com.google.android.exoplayer2.testutil")implements[ExoPlayer](../ExoPlayer.html "interface in com.google.android.exoplayer2")

An abstract ExoPlayer implementation that throws UnsupportedOperationException 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 an AnalyticsListener 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 a PlayerMessage.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 the AnalyticsCollector used for collecting analytics events. | | ExoPlayer.AudioComponent | getAudioComponent() | Deprecated. Use ExoPlayer, as the ExoPlayer.AudioComponent methods are defined by that interface.

| | DecoderCounters | getAudioDecoderCounters() | Returns DecoderCounters 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, or C.AUDIO_SESSION_ID_UNSET if not set. | | Clock | getClock() | Returns the Clock used for playback. | | TrackGroupArray | getCurrentTrackGroups() | Deprecated. Use StubPlayer.getCurrentTracks().

| | TrackSelectionArray | getCurrentTrackSelections() | Deprecated. Use StubPlayer.getCurrentTracks().

| | ExoPlayer.DeviceComponent | getDeviceComponent() | Deprecated. Use Player, as the ExoPlayer.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 the Looper 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 active SeekParameters of the player. | | boolean | getSkipSilenceEnabled() | Returns whether skipping silences in the audio stream is enabled. | | ExoPlayer.TextComponent | getTextComponent() | Deprecated. Use Player, as the ExoPlayer.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 the C.VideoChangeFrameRateStrategy. | | ExoPlayer.VideoComponent | getVideoComponent() | Deprecated. Use ExoPlayer, as the ExoPlayer.VideoComponent methods are defined by that interface.

| | DecoderCounters | getVideoDecoderCounters() | Returns DecoderCounters 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 the C.VideoScalingMode. | | boolean | isTunnelingEnabled() | Returns whether tunneling is enabled for the currently selected tracks. | | void | prepare​(MediaSource mediaSource) | Deprecated. Use setMediaSource(MediaSource) and StubPlayer.prepare() instead.

| | void | prepare​(MediaSource mediaSource, boolean resetPosition, boolean resetState) | Deprecated. Use setMediaSource(MediaSource, boolean) and StubPlayer.prepare() instead.

| | void | removeAnalyticsListener​(AnalyticsListener listener) | Removes an AnalyticsListener. | | 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 underlying AudioTrack. | | 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 specified MediaSource and resets the position to the default position. | | void | setMediaSource​(MediaSource mediaSource, boolean resetPosition) | Clears the playlist and adds the specified MediaSource. | | void | setMediaSource​(MediaSource mediaSource, long startPositionMs) | Clears the playlist and adds the specified MediaSource. | | void | setMediaSources​(List<MediaSource> mediaSources) | Clears the playlist, adds the specified MediaSources and resets the position to the default position. | | void | setMediaSources​(List<MediaSource> mediaSources, boolean resetPosition) | Clears the playlist and adds the specified MediaSources. | | void | setMediaSources​(List<MediaSource> mediaSources, int startMediaItemIndex, long startPositionMs) | Clears the playlist and adds the specified MediaSources. | | 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 a PriorityTaskManager, 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 a C.VideoChangeFrameRateStrategy that will be used by the player when provided with a video output Surface. | | void | setVideoEffects​(List<Effect> videoEffects) | Sets a List 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 the C.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

Constructor Detail

- 

StubExoPlayer

public StubExoPlayer()

Method Detail

- 

getAudioComponent

[@Deprecated](https://developer.android.com/reference/java/lang/Deprecated.html "class or interface in java.lang")public[ExoPlayer.AudioComponent](../ExoPlayer.AudioComponent.html "interface in com.google.android.exoplayer2")getAudioComponent()

Deprecated. Use ExoPlayer, as the ExoPlayer.AudioComponent methods are defined by that interface.

Specified by:getAudioComponent in interface ExoPlayer

- 

getVideoComponent

[@Deprecated](https://developer.android.com/reference/java/lang/Deprecated.html "class or interface in java.lang")public[ExoPlayer.VideoComponent](../ExoPlayer.VideoComponent.html "interface in com.google.android.exoplayer2")getVideoComponent()

Deprecated. Use ExoPlayer, as the ExoPlayer.VideoComponent methods are defined by that interface.

Specified by:getVideoComponent in interface ExoPlayer

- 

getTextComponent

[@Deprecated](https://developer.android.com/reference/java/lang/Deprecated.html "class or interface in java.lang")public[ExoPlayer.TextComponent](../ExoPlayer.TextComponent.html "interface in com.google.android.exoplayer2")getTextComponent()

Deprecated. Use Player, as the ExoPlayer.TextComponent methods are defined by that interface.

Specified by:getTextComponent in interface ExoPlayer

- 

getDeviceComponent

[@Deprecated](https://developer.android.com/reference/java/lang/Deprecated.html "class or interface in java.lang")public[ExoPlayer.DeviceComponent](../ExoPlayer.DeviceComponent.html "interface in com.google.android.exoplayer2")getDeviceComponent()

Deprecated. Use Player, as the ExoPlayer.DeviceComponent methods are defined by that interface.

Specified by:getDeviceComponent in interface ExoPlayer

- 

getPlaybackLooper

public[Looper](https://developer.android.com/reference/android/os/Looper.html "class or interface in android.os")getPlaybackLooper()

Description copied from interface: ExoPlayer

Returns the Looper associated with the playback thread.

This method may be called from any thread.

Specified by:getPlaybackLooper in interface ExoPlayer

- 

getClock

public[Clock](../util/Clock.html "interface in com.google.android.exoplayer2.util")getClock()

Description copied from interface: ExoPlayer

Returns the Clock used for playback.

This method can be called from any thread.

Specified by:getClock in interface ExoPlayer

- 

addAudioOffloadListener

public void addAudioOffloadListener​([ExoPlayer.AudioOffloadListener](../ExoPlayer.AudioOffloadListener.html "interface in com.google.android.exoplayer2")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 interface ExoPlayerParameters:listener - The listener to register.

- 

removeAudioOffloadListener

public void removeAudioOffloadListener​([ExoPlayer.AudioOffloadListener](../ExoPlayer.AudioOffloadListener.html "interface in com.google.android.exoplayer2")listener)

Description copied from interface: ExoPlayer

Removes a listener of audio offload events. Specified by:removeAudioOffloadListener in interface ExoPlayerParameters:listener - The listener to unregister.

- 

getAnalyticsCollector

public[AnalyticsCollector](../analytics/AnalyticsCollector.html "interface in com.google.android.exoplayer2.analytics")getAnalyticsCollector()

Description copied from interface: ExoPlayer

Returns the AnalyticsCollector used for collecting analytics events. Specified by:getAnalyticsCollector in interface ExoPlayer

- 

addAnalyticsListener

public void addAnalyticsListener​([AnalyticsListener](../analytics/AnalyticsListener.html "interface in com.google.android.exoplayer2.analytics")listener)

Description copied from interface: ExoPlayer

Adds an AnalyticsListener to receive analytics events.

This method can be called from any thread.

Specified by:addAnalyticsListener in interface ExoPlayerParameters:listener - The listener to be added.

- 

removeAnalyticsListener

public void removeAnalyticsListener​([AnalyticsListener](../analytics/AnalyticsListener.html "interface in com.google.android.exoplayer2.analytics")listener)

Description copied from interface: ExoPlayer

Removes an AnalyticsListener. Specified by:removeAnalyticsListener in interface ExoPlayerParameters:listener - The listener to be removed.

- 

getPlayerError

public[ExoPlaybackException](../ExoPlaybackException.html "class in com.google.android.exoplayer2")getPlayerError()

Description copied from interface: Player

Returns the error that caused playback to fail. This is the same error that will have been reported via Player.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 if Player.getPlaybackState() is not Player.STATE_IDLE.

Specified by:getPlayerError in interface ExoPlayerSpecified by:getPlayerError in interface PlayerOverrides:getPlayerError in class StubPlayerReturns:The error, or null.See Also:Player.Listener.onPlayerError(PlaybackException)

- 

prepare

[@Deprecated](https://developer.android.com/reference/java/lang/Deprecated.html "class or interface in java.lang")public void prepare​([MediaSource](../source/MediaSource.html "interface in com.google.android.exoplayer2.source")mediaSource)

Deprecated. Use setMediaSource(MediaSource) and StubPlayer.prepare() instead.

Specified by:prepare in interface ExoPlayer

- 

prepare

[@Deprecated](https://developer.android.com/reference/java/lang/Deprecated.html "class or interface in java.lang")public void prepare​([MediaSource](../source/MediaSource.html "interface in com.google.android.exoplayer2.source")mediaSource,
                    boolean resetPosition,
                    boolean resetState)

Deprecated. Use setMediaSource(MediaSource, boolean) and StubPlayer.prepare() instead.

Specified by:prepare in interface ExoPlayer

- 

setMediaSource

public void setMediaSource​([MediaSource](../source/MediaSource.html "interface in com.google.android.exoplayer2.source")mediaSource)

Description copied from interface: ExoPlayer

Clears the playlist, adds the specified MediaSource and resets the position to the default position. Specified by:setMediaSource in interface ExoPlayerParameters:mediaSource - The new MediaSource.

- 

setMediaSource

public void setMediaSource​([MediaSource](../source/MediaSource.html "interface in com.google.android.exoplayer2.source")mediaSource,
                           long startPositionMs)

Description copied from interface: ExoPlayer

Clears the playlist and adds the specified MediaSource. Specified by:setMediaSource in interface ExoPlayerParameters:mediaSource - The new MediaSource.startPositionMs - The position in milliseconds to start playback from.

- 

setMediaSource

public void setMediaSource​([MediaSource](../source/MediaSource.html "interface in com.google.android.exoplayer2.source")mediaSource,
                           boolean resetPosition)

Description copied from interface: ExoPlayer

Clears the playlist and adds the specified MediaSource. Specified by:setMediaSource in interface ExoPlayerParameters:mediaSource - The new MediaSource.resetPosition - Whether the playback position should be reset to the default position. If false, playback will start from the position defined by Player.getCurrentMediaItemIndex() and Player.getCurrentPosition().

- 

setMediaSources

public void setMediaSources​([List](https://developer.android.com/reference/java/util/List.html "class or interface in java.util")<[MediaSource](../source/MediaSource.html "interface in com.google.android.exoplayer2.source")> mediaSources)

Description copied from interface: ExoPlayer

Clears the playlist, adds the specified MediaSources and resets the position to the default position. Specified by:setMediaSources in interface ExoPlayerParameters:mediaSources - The new MediaSources.

- 

setMediaSources

public void setMediaSources​([List](https://developer.android.com/reference/java/util/List.html "class or interface in java.util")<[MediaSource](../source/MediaSource.html "interface in com.google.android.exoplayer2.source")> mediaSources,
                            boolean resetPosition)

Description copied from interface: ExoPlayer

Clears the playlist and adds the specified MediaSources. Specified by:setMediaSources in interface ExoPlayerParameters:mediaSources - The new MediaSources.resetPosition - Whether the playback position should be reset to the default position in the first Timeline.Window. If false, playback will start from the position defined by Player.getCurrentMediaItemIndex() and Player.getCurrentPosition().

- 

setMediaSources

public void setMediaSources​([List](https://developer.android.com/reference/java/util/List.html "class or interface in java.util")<[MediaSource](../source/MediaSource.html "interface in com.google.android.exoplayer2.source")> mediaSources,
                            int startMediaItemIndex,
                            long startPositionMs)

Description copied from interface: ExoPlayer

Clears the playlist and adds the specified MediaSources. Specified by:setMediaSources in interface ExoPlayerParameters:mediaSources - The new MediaSources.startMediaItemIndex - The media item index to start playback from. If C.INDEX_UNSET is passed, the current position is not reset.startPositionMs - The position in milliseconds to start playback from. If C.TIME_UNSET is passed, the default position of the given media item is used. In any case, if startMediaItemIndex is set to C.INDEX_UNSET, this parameter is ignored and the position is not reset at all.

- 

addMediaSource

public void addMediaSource​([MediaSource](../source/MediaSource.html "interface in com.google.android.exoplayer2.source")mediaSource)

Description copied from interface: ExoPlayer

Adds a media source to the end of the playlist. Specified by:addMediaSource in interface ExoPlayerParameters:mediaSource - The MediaSource to add.

- 

addMediaSource

public void addMediaSource​(int index,[MediaSource](../source/MediaSource.html "interface in com.google.android.exoplayer2.source")mediaSource)

Description copied from interface: ExoPlayer

Adds a media source at the given index of the playlist. Specified by:addMediaSource in interface ExoPlayerParameters:index - The index at which to add the source.mediaSource - The MediaSource to add.

- 

addMediaSources

public void addMediaSources​([List](https://developer.android.com/reference/java/util/List.html "class or interface in java.util")<[MediaSource](../source/MediaSource.html "interface in com.google.android.exoplayer2.source")> mediaSources)

Description copied from interface: ExoPlayer

Adds a list of media sources to the end of the playlist. Specified by:addMediaSources in interface ExoPlayerParameters:mediaSources - The MediaSources to add.

- 

addMediaSources

public void addMediaSources​(int index,[List](https://developer.android.com/reference/java/util/List.html "class or interface in java.util")<[MediaSource](../source/MediaSource.html "interface in com.google.android.exoplayer2.source")> mediaSources)

Description copied from interface: ExoPlayer

Adds a list of media sources at the given index of the playlist. Specified by:addMediaSources in interface ExoPlayerParameters:index - The index at which to add the media sources.mediaSources - The MediaSources to add.

- 

setShuffleOrder

public void setShuffleOrder​([ShuffleOrder](../source/ShuffleOrder.html "interface in com.google.android.exoplayer2.source")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 interface ExoPlayerParameters:shuffleOrder - The shuffle order.

- 

setAudioAttributes

public void setAudioAttributes​([AudioAttributes](../audio/AudioAttributes.html "class in com.google.android.exoplayer2.audio")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 be C.USAGE_MEDIA or C.USAGE_GAME. Other usages will throw an IllegalArgumentException.

Specified by:setAudioAttributes in interface ExoPlayerParameters: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 underlying AudioTrack.

The audio session ID can be generated using Util.generateAudioSessionIdV21(Context) for API 21+.

Specified by:setAudioSessionId in interface ExoPlayerParameters:audioSessionId - The audio session ID, or C.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, or C.AUDIO_SESSION_ID_UNSET if not set. Specified by:getAudioSessionId in interface ExoPlayer

- 

setAuxEffectInfo

public void setAuxEffectInfo​([AuxEffectInfo](../audio/AuxEffectInfo.html "class in com.google.android.exoplayer2.audio")auxEffectInfo)

Description copied from interface: ExoPlayer

Sets information on an auxiliary audio effect to attach to the underlying audio track. Specified by:setAuxEffectInfo in interface ExoPlayer

- 

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 interface ExoPlayer

- 

setPreferredAudioDevice

public void setPreferredAudioDevice​(@Nullable[AudioDeviceInfo](https://developer.android.com/reference/android/media/AudioDeviceInfo.html "class or interface in android.media")audioDeviceInfo)

Description copied from interface: ExoPlayer

Sets the preferred audio device. Specified by:setPreferredAudioDevice in interface ExoPlayerParameters: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 interface ExoPlayerParameters: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 interface ExoPlayer

- 

setVideoEffects

public void setVideoEffects​([List](https://developer.android.com/reference/java/util/List.html "class or interface in java.util")<[Effect](../util/Effect.html "interface in com.google.android.exoplayer2.util")> videoEffects)

Description copied from interface: ExoPlayer

Sets a List 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`](../video/MediaCodecVideoRenderer.html "class in com.google.android.exoplayer2.video") and not custom or extension [video renderers](../Renderer.html "interface in com.google.android.exoplayer2"). 
  - This feature does not work with DRM-protected contents. 
  - This method should be called before calling [`ExoPlayer.prepare(com.google.android.exoplayer2.source.MediaSource)`](../ExoPlayer.html#prepare(com.google.android.exoplayer2.source.MediaSource)). 

Specified by:setVideoEffects in interface ExoPlayerParameters:videoEffects - The List of video effects to apply.

- 

setVideoScalingMode

public void setVideoScalingMode​(int videoScalingMode)

Description copied from interface: ExoPlayer

Sets the C.VideoScalingMode.

The scaling mode only applies if a MediaCodec-based video Renderer is enabled and if the output surface is owned by a SurfaceView.

Specified by:setVideoScalingMode in interface ExoPlayerParameters:videoScalingMode - The C.VideoScalingMode.

- 

getVideoScalingMode

public int getVideoScalingMode()

Description copied from interface: ExoPlayer

Returns the C.VideoScalingMode. Specified by:getVideoScalingMode in interface ExoPlayer

- 

setVideoChangeFrameRateStrategy

public void setVideoChangeFrameRateStrategy​(int videoChangeFrameRateStrategy)

Description copied from interface: ExoPlayer

Sets a C.VideoChangeFrameRateStrategy that will be used by the player when provided with a video output Surface.

The strategy only applies if a MediaCodec-based video Renderer is enabled. Applications wishing to use Surface.CHANGE_FRAME_RATE_ALWAYS should set the mode to C.VIDEO_CHANGE_FRAME_RATE_STRATEGY_OFF to disable calls to Surface.setFrameRate(float, int, int) from ExoPlayer, and should then call Surface.setFrameRate(float, int, int) directly from application code.

Specified by:setVideoChangeFrameRateStrategy in interface ExoPlayerParameters:videoChangeFrameRateStrategy - A C.VideoChangeFrameRateStrategy.

- 

getVideoChangeFrameRateStrategy

public int getVideoChangeFrameRateStrategy()

Description copied from interface: ExoPlayer

Returns the C.VideoChangeFrameRateStrategy. Specified by:getVideoChangeFrameRateStrategy in interface ExoPlayer

- 

setVideoFrameMetadataListener

public void setVideoFrameMetadataListener​([VideoFrameMetadataListener](../video/VideoFrameMetadataListener.html "interface in com.google.android.exoplayer2.video")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 interface ExoPlayerParameters:listener - The listener.

- 

clearVideoFrameMetadataListener

public void clearVideoFrameMetadataListener​([VideoFrameMetadataListener](../video/VideoFrameMetadataListener.html "interface in com.google.android.exoplayer2.video")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 interface ExoPlayerParameters:listener - The listener to clear.

- 

setCameraMotionListener

public void setCameraMotionListener​([CameraMotionListener](../video/spherical/CameraMotionListener.html "interface in com.google.android.exoplayer2.video.spherical")listener)

Description copied from interface: ExoPlayer

Sets a listener of camera motion events. Specified by:setCameraMotionListener in interface ExoPlayerParameters:listener - The listener.

- 

clearCameraMotionListener

public void clearCameraMotionListener​([CameraMotionListener](../video/spherical/CameraMotionListener.html "interface in com.google.android.exoplayer2.video.spherical")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 interface ExoPlayerParameters:listener - The listener to clear.

- 

setSeekParameters

public void setSeekParameters​(@Nullable[SeekParameters](../SeekParameters.html "class in com.google.android.exoplayer2")seekParameters)

Description copied from interface: ExoPlayer

Sets the parameters that control how seek operations are performed. Specified by:setSeekParameters in interface ExoPlayerParameters:seekParameters - The seek parameters, or null to use the defaults.

- 

getSeekParameters

public[SeekParameters](../SeekParameters.html "class in com.google.android.exoplayer2")getSeekParameters()

Description copied from interface: ExoPlayer

Returns the currently active SeekParameters of the player. Specified by:getSeekParameters in interface ExoPlayer

- 

createMessage

public[PlayerMessage](../PlayerMessage.html "class in com.google.android.exoplayer2")createMessage​([PlayerMessage.Target](../PlayerMessage.Target.html "interface in com.google.android.exoplayer2")target)

Description copied from interface: ExoPlayer

Creates a message that can be sent to a PlayerMessage.Target. By default, the message will be delivered immediately without blocking on the playback thread. The default PlayerMessage.getType() is 0 and the default PlayerMessage.getPayload() is null. If a position is specified with PlayerMessage.setPosition(long), the message will be delivered at this position in the current media item defined by Player.getCurrentMediaItemIndex(). Alternatively, the message can be sent at a specific mediaItem using PlayerMessage.setPosition(int, long). Specified by:createMessage in interface ExoPlayer

- 

getRendererCount

public int getRendererCount()

Description copied from interface: ExoPlayer

Returns the number of renderers. Specified by:getRendererCount in interface ExoPlayer

- 

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 return C.TRACK_TYPE_AUDIO and a text renderer will return C.TRACK_TYPE_TEXT.

Specified by:getRendererType in interface ExoPlayerParameters:index - The index of the renderer.Returns:The track type that the renderer handles.

- 

getRenderer

public[Renderer](../Renderer.html "interface in com.google.android.exoplayer2")getRenderer​(int index)

Description copied from interface: ExoPlayer

Returns the renderer at the given index. Specified by:getRenderer in interface ExoPlayerParameters:index - The index of the renderer.Returns:The renderer at this index.

- 

getTrackSelector

@Nullable
public[TrackSelector](../trackselection/TrackSelector.html "class in com.google.android.exoplayer2.trackselection")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 interface ExoPlayer

- 

getCurrentTrackGroups

[@Deprecated](https://developer.android.com/reference/java/lang/Deprecated.html "class or interface in java.lang")public[TrackGroupArray](../source/TrackGroupArray.html "class in com.google.android.exoplayer2.source")getCurrentTrackGroups()

Deprecated. Use StubPlayer.getCurrentTracks().

Description copied from interface: ExoPlayer

Returns the available track groups. Specified by:getCurrentTrackGroups in interface ExoPlayerSee Also:Player.Listener.onTracksChanged(Tracks)

- 

getCurrentTrackSelections

[@Deprecated](https://developer.android.com/reference/java/lang/Deprecated.html "class or interface in java.lang")public[TrackSelectionArray](../trackselection/TrackSelectionArray.html "class in com.google.android.exoplayer2.trackselection")getCurrentTrackSelections()

Deprecated. Use StubPlayer.getCurrentTracks().

Description copied from interface: ExoPlayer

Returns the current track selections for each renderer, which may include null elements if some renderers do not have any selected tracks. Specified by:getCurrentTrackSelections in interface ExoPlayerSee 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()`](../Player.html#stop()) is called to halt one playback, and [`ExoPlayer.prepare(com.google.android.exoplayer2.source.MediaSource)`](../ExoPlayer.html#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 calling ExoPlayer.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 interface ExoPlayerParameters: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 to Player.Listener.onPlayWhenReadyChanged(boolean, int) with the reason Player.PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM when this happens.

Specified by:setPauseAtEndOfMediaItems in interface ExoPlayerParameters: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 interface ExoPlayerSee Also:ExoPlayer.setPauseAtEndOfMediaItems(boolean)

- 

getAudioFormat

@Nullable
public[Format](../Format.html "class in com.google.android.exoplayer2")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 interface ExoPlayer

- 

getVideoFormat

@Nullable
public[Format](../Format.html "class in com.google.android.exoplayer2")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 interface ExoPlayer

- 

getAudioDecoderCounters

@Nullable
public[DecoderCounters](../decoder/DecoderCounters.html "class in com.google.android.exoplayer2.decoder")getAudioDecoderCounters()

Description copied from interface: ExoPlayer

Returns DecoderCounters for audio, or null if no audio is being played. Specified by:getAudioDecoderCounters in interface ExoPlayer

- 

getVideoDecoderCounters

@Nullable
public[DecoderCounters](../decoder/DecoderCounters.html "class in com.google.android.exoplayer2.decoder")getVideoDecoderCounters()

Description copied from interface: ExoPlayer

Returns DecoderCounters for video, or null if no video is being played. Specified by:getVideoDecoderCounters in interface ExoPlayer

- 

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 interface ExoPlayerParameters: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 foreground Service 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 the Player.STATE_READY or Player.STATE_BUFFERING states with playWhenReady = true. The locks held depends on the specified C.WakeMode.

Specified by:setWakeMode in interface ExoPlayerParameters:wakeMode - The C.WakeMode option to keep the device awake during playback.

- 

setPriorityTaskManager

public void setPriorityTaskManager​(@Nullable[PriorityTaskManager](../util/PriorityTaskManager.html "class in com.google.android.exoplayer2.util")priorityTaskManager)

Description copied from interface: ExoPlayer

Sets a PriorityTaskManager, 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 interface ExoPlayerParameters:priorityTaskManager - The PriorityTaskManager, 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 with offloadSchedulingEnabled = 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)`](../DefaultRenderersFactory.html#setEnableAudioOffload(boolean)) or the equivalent option passed to [`DefaultAudioSink.Builder.setOffloadMode(@com.google.android.exoplayer2.audio.DefaultAudioSink.OffloadMode int)`](../audio/DefaultAudioSink.Builder.html#setOffloadMode(@com.google.android.exoplayer2.audio.DefaultAudioSink.OffloadModeint)). 
  - An audio track is playing in a format that the device supports offloading (for example, MP3 or AAC). 
  - The [`AudioSink`](../audio/AudioSink.html "interface in com.google.android.exoplayer2.audio") is playing with an offload [`AudioTrack`](https://developer.android.com/reference/android/media/AudioTrack.html "class or interface in android.media"). 

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 interface ExoPlayerParameters:offloadSchedulingEnabled - Whether to enable offload scheduling.

- 

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. Specified by:experimentalIsSleepingForOffload in interface ExoPlayerSee Also:ExoPlayer.experimentalSetOffloadSchedulingEnabled(boolean), ExoPlayer.AudioOffloadListener.onExperimentalSleepingForOffloadChanged(boolean)

- 

isTunnelingEnabled

public boolean isTunnelingEnabled()

Description copied from interface: ExoPlayer

Returns whether tunneling is enabled for the currently selected tracks. Specified by:isTunnelingEnabled in interface ExoPlayerSee Also:Player.Listener.onTracksChanged(Tracks)