# SimpleExoPlayer

Artifact: [androidx.media3:media3-exoplayer](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/exoplayer/SimpleExoPlayer.java+class:androidx.media3.exoplayer.SimpleExoPlayer)

*** ** * ** ***


```
@UnstableApi
public class SimpleExoPlayer extends BasePlayer implements ExoPlayer
```

<br />

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) |||
| ↳ | [androidx.media3.common.BasePlayer](https://developer.android.com/reference/androidx/media3/common/BasePlayer) ||
|   | ↳ | [androidx.media3.exoplayer.SimpleExoPlayer](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer) |

*** ** * ** ***

> [!CAUTION]
> **This class is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer` instead.

## Summary

| ### Nested types |
|---|
| `public final class https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer.Builder` **This class is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.Builder` instead. <br /> |

| ### Protected constructors |
|---|
| `[SimpleExoPlayer](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#SimpleExoPlayer(androidx.media3.exoplayer.SimpleExoPlayer.Builder))(https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer.Builder builder)` **This method is deprecated.** Deprecated in Java |
| `[SimpleExoPlayer](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#SimpleExoPlayer(android.content.Context,androidx.media3.exoplayer.RenderersFactory,androidx.media3.exoplayer.trackselection.TrackSelector,androidx.media3.exoplayer.source.MediaSource.Factory,androidx.media3.exoplayer.LoadControl,androidx.media3.exoplayer.upstream.BandwidthMeter,androidx.media3.exoplayer.analytics.AnalyticsCollector,boolean,androidx.media3.common.util.Clock,android.os.Looper))( https://developer.android.com/reference/android/content/Context.html context, https://developer.android.com/reference/androidx/media3/exoplayer/RenderersFactory renderersFactory, https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/TrackSelector trackSelector, https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.Factory mediaSourceFactory, https://developer.android.com/reference/androidx/media3/exoplayer/LoadControl loadControl, https://developer.android.com/reference/androidx/media3/exoplayer/upstream/BandwidthMeter bandwidthMeter, https://developer.android.com/reference/androidx/media3/exoplayer/analytics/AnalyticsCollector analyticsCollector, boolean useLazyPreparation, https://developer.android.com/reference/androidx/media3/common/util/Clock clock, https://developer.android.com/reference/android/os/Looper.html applicationLooper )` **This method is deprecated.** Use the `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.Builder`. <br /> |

| ### Public methods |
|---|---|
| `void` | `[addAnalyticsListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addAnalyticsListener(androidx.media3.exoplayer.analytics.AnalyticsListener))(https://developer.android.com/reference/androidx/media3/exoplayer/analytics/AnalyticsListener listener)` **This method is deprecated.** Deprecated in Java |
| `void` | `[addAudioCodecParametersChangeListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addAudioCodecParametersChangeListener(androidx.media3.exoplayer.CodecParametersChangeListener,java.util.List<java.lang.String>))( https://developer.android.com/reference/androidx/media3/exoplayer/CodecParametersChangeListener listener, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/String.html> keys )` **This method is deprecated.** Deprecated in Java |
| `void` | `[addAudioOffloadListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addAudioOffloadListener(androidx.media3.exoplayer.ExoPlayer.AudioOffloadListener))(https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.AudioOffloadListener listener)` **This method is deprecated.** Deprecated in Java |
| `void` | `[addListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addListener(androidx.media3.common.Player.Listener))(https://developer.android.com/reference/androidx/media3/common/Player.Listener listener)` **This method is deprecated.** Deprecated in Java |
| `void` | `[addMediaItems](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addMediaItems(int,java.util.List<androidx.media3.common.MediaItem>))(int index, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/MediaItem> mediaItems)` **This method is deprecated.** Deprecated in Java |
| `void` | `[addMediaSource](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addMediaSource(androidx.media3.exoplayer.source.MediaSource))(https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource mediaSource)` **This method is deprecated.** Deprecated in Java |
| `void` | `[addMediaSource](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addMediaSource(int,androidx.media3.exoplayer.source.MediaSource))(int index, https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource mediaSource)` **This method is deprecated.** Deprecated in Java |
| `void` | `[addMediaSources](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addMediaSources(java.util.List<androidx.media3.exoplayer.source.MediaSource>))(https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource> mediaSources)` **This method is deprecated.** Deprecated in Java |
| `void` | `[addMediaSources](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addMediaSources(int,java.util.List<androidx.media3.exoplayer.source.MediaSource>))(int index, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource> mediaSources)` **This method is deprecated.** Deprecated in Java |
| `void` | `[addVideoCodecParametersChangeListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addVideoCodecParametersChangeListener(androidx.media3.exoplayer.CodecParametersChangeListener,java.util.List<java.lang.String>))( https://developer.android.com/reference/androidx/media3/exoplayer/CodecParametersChangeListener listener, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/String.html> keys )` **This method is deprecated.** Deprecated in Java |
| `void` | `[addVideoFrameMetadataListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addVideoFrameMetadataListener(androidx.media3.exoplayer.video.VideoFrameMetadataListener))(https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoFrameMetadataListener listener)` **This method is deprecated.** Deprecated in Java |
| `void` | `[clearAuxEffectInfo](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#clearAuxEffectInfo())()` **This method is deprecated.** Deprecated in Java |
| `void` | `[clearCameraMotionListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#clearCameraMotionListener(androidx.media3.exoplayer.video.spherical.CameraMotionListener))(https://developer.android.com/reference/androidx/media3/exoplayer/video/spherical/CameraMotionListener listener)` **This method is deprecated.** Deprecated in Java |
| `void` | `[clearVideoFrameMetadataListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#clearVideoFrameMetadataListener(androidx.media3.exoplayer.video.VideoFrameMetadataListener))(https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoFrameMetadataListener listener)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#removeVideoFrameMetadataListener(androidx.media3.exoplayer.video.VideoFrameMetadataListener)` instead. <br /> |
| `void` | `[clearVideoSurface](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#clearVideoSurface())()` **This method is deprecated.** Deprecated in Java |
| `void` | `[clearVideoSurface](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#clearVideoSurface(android.view.Surface))(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/view/Surface.html surface)` **This method is deprecated.** Deprecated in Java |
| `void` | `[clearVideoSurfaceHolder](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#clearVideoSurfaceHolder(android.view.SurfaceHolder))(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/view/SurfaceHolder.html surfaceHolder)` **This method is deprecated.** Deprecated in Java |
| `void` | `[clearVideoSurfaceView](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#clearVideoSurfaceView(android.view.SurfaceView))(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/view/SurfaceView.html surfaceView)` **This method is deprecated.** Deprecated in Java |
| `void` | `[clearVideoTextureView](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#clearVideoTextureView(android.view.TextureView))(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/view/TextureView.html textureView)` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/media3/exoplayer/PlayerMessage` | `[createMessage](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#createMessage(androidx.media3.exoplayer.PlayerMessage.Target))(https://developer.android.com/reference/androidx/media3/exoplayer/PlayerMessage.Target target)` **This method is deprecated.** Deprecated in Java |
| `void` | `[decreaseDeviceVolume](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#decreaseDeviceVolume())()` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#decreaseDeviceVolume(int)` instead. <br /> |
| `void` | `[decreaseDeviceVolume](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#decreaseDeviceVolume(int))(@https://developer.android.com/reference/androidx/media3/common/C.VolumeFlags int flags)` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/media3/exoplayer/analytics/AnalyticsCollector` | `[getAnalyticsCollector](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getAnalyticsCollector())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/android/os/Looper.html` | `[getApplicationLooper](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getApplicationLooper())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/media3/common/AudioAttributes` | `[getAudioAttributes](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getAudioAttributes())()` **This method is deprecated.** Deprecated in Java |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/DecoderCounters` | `[getAudioDecoderCounters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getAudioDecoderCounters())()` **This method is deprecated.** Deprecated in Java |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/Format` | `[getAudioFormat](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getAudioFormat())()` **This method is deprecated.** Deprecated in Java |
| `int` | `[getAudioSessionId](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getAudioSessionId())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/media3/common/Player.Commands` | `[getAvailableCommands](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getAvailableCommands())()` **This method is deprecated.** Deprecated in Java |
| `long` | `[getBufferedPosition](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getBufferedPosition())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/media3/common/util/Clock` | `[getClock](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getClock())()` **This method is deprecated.** Deprecated in Java |
| `long` | `[getContentBufferedPosition](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getContentBufferedPosition())()` **This method is deprecated.** Deprecated in Java |
| `long` | `[getContentPosition](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getContentPosition())()` **This method is deprecated.** Deprecated in Java |
| `int` | `[getCurrentAdGroupIndex](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentAdGroupIndex())()` **This method is deprecated.** Deprecated in Java |
| `int` | `[getCurrentAdIndexInAdGroup](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentAdIndexInAdGroup())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/media3/common/text/CueGroup` | `[getCurrentCues](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentCues())()` **This method is deprecated.** Deprecated in Java |
| `int` | `[getCurrentMediaItemIndex](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentMediaItemIndex())()` **This method is deprecated.** Deprecated in Java |
| `int` | `[getCurrentPeriodIndex](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentPeriodIndex())()` **This method is deprecated.** Deprecated in Java |
| `long` | `[getCurrentPosition](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentPosition())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/media3/common/Timeline` | `[getCurrentTimeline](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentTimeline())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/media3/exoplayer/source/TrackGroupArray` | `[getCurrentTrackGroups](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentTrackGroups())()` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentTracks()`. <br /> |
| `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/TrackSelectionArray` | `[getCurrentTrackSelections](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentTrackSelections())()` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentTracks()`. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/Tracks` | `[getCurrentTracks](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentTracks())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/media3/common/DeviceInfo` | `[getDeviceInfo](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getDeviceInfo())()` **This method is deprecated.** Deprecated in Java |
| `int` | `[getDeviceVolume](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getDeviceVolume())()` **This method is deprecated.** Deprecated in Java |
| `long` | `[getDuration](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getDuration())()` **This method is deprecated.** Deprecated in Java |
| `long` | `[getMaxSeekToPreviousPosition](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getMaxSeekToPreviousPosition())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/media3/common/MediaMetadata` | `[getMediaMetadata](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getMediaMetadata())()` **This method is deprecated.** Deprecated in Java |
| `boolean` | `[getPauseAtEndOfMediaItems](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getPauseAtEndOfMediaItems())()` **This method is deprecated.** Deprecated in Java |
| `boolean` | `[getPlayWhenReady](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getPlayWhenReady())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/android/os/Looper.html` | `[getPlaybackLooper](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getPlaybackLooper())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/media3/common/PlaybackParameters` | `[getPlaybackParameters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getPlaybackParameters())()` **This method is deprecated.** Deprecated in Java |
| `int` | `@https://developer.android.com/reference/androidx/media3/common/Player.State [getPlaybackState](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getPlaybackState())()` **This method is deprecated.** Deprecated in Java |
| `int` | `@https://developer.android.com/reference/androidx/media3/common/Player.PlaybackSuppressionReason [getPlaybackSuppressionReason](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getPlaybackSuppressionReason())()` **This method is deprecated.** Deprecated in Java |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlaybackException` | `[getPlayerError](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getPlayerError())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/media3/common/MediaMetadata` | `[getPlaylistMetadata](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getPlaylistMetadata())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.PreloadConfiguration` | `[getPreloadConfiguration](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getPreloadConfiguration())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` | `[getRenderer](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getRenderer(int))(int index)` **This method is deprecated.** Deprecated in Java |
| `int` | `[getRendererCount](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getRendererCount())()` **This method is deprecated.** Deprecated in Java |
| `int` | `@https://developer.android.com/reference/androidx/media3/common/C.TrackType [getRendererType](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getRendererType(int))(int index)` **This method is deprecated.** Deprecated in Java |
| `int` | `@https://developer.android.com/reference/androidx/media3/common/Player.RepeatMode [getRepeatMode](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getRepeatMode())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/media3/exoplayer/ScrubbingModeParameters` | `[getScrubbingModeParameters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getScrubbingModeParameters())()` **This method is deprecated.** Deprecated in Java |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` | `[getSecondaryRenderer](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getSecondaryRenderer(int))(int index)` **This method is deprecated.** Deprecated in Java |
| `long` | `[getSeekBackIncrement](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getSeekBackIncrement())()` **This method is deprecated.** Deprecated in Java |
| `long` | `[getSeekForwardIncrement](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getSeekForwardIncrement())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/media3/exoplayer/SeekParameters` | `[getSeekParameters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getSeekParameters())()` **This method is deprecated.** Deprecated in Java |
| `boolean` | `[getShuffleModeEnabled](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getShuffleModeEnabled())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/media3/exoplayer/source/ShuffleOrder` | `[getShuffleOrder](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getShuffleOrder())()` **This method is deprecated.** Deprecated in Java |
| `boolean` | `[getSkipSilenceEnabled](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getSkipSilenceEnabled())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/media3/common/util/Size` | `[getSurfaceSize](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getSurfaceSize())()` **This method is deprecated.** Deprecated in Java |
| `long` | `[getTotalBufferedDuration](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getTotalBufferedDuration())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/media3/common/TrackSelectionParameters` | `[getTrackSelectionParameters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getTrackSelectionParameters())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/TrackSelector` | `[getTrackSelector](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getTrackSelector())()` **This method is deprecated.** Deprecated in Java |
| `int` | `@https://developer.android.com/reference/androidx/media3/common/C.VideoChangeFrameRateStrategy [getVideoChangeFrameRateStrategy](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getVideoChangeFrameRateStrategy())()` **This method is deprecated.** Deprecated in Java |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/DecoderCounters` | `[getVideoDecoderCounters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getVideoDecoderCounters())()` **This method is deprecated.** Deprecated in Java |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/Format` | `[getVideoFormat](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getVideoFormat())()` **This method is deprecated.** Deprecated in Java |
| `int` | `@https://developer.android.com/reference/androidx/media3/common/C.VideoScalingMode [getVideoScalingMode](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getVideoScalingMode())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/media3/common/VideoSize` | `[getVideoSize](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getVideoSize())()` **This method is deprecated.** Deprecated in Java |
| `float` | `[getVolume](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getVolume())()` **This method is deprecated.** Deprecated in Java |
| `void` | `[increaseDeviceVolume](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#increaseDeviceVolume())()` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#increaseDeviceVolume(int)` instead. <br /> |
| `void` | `[increaseDeviceVolume](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#increaseDeviceVolume(int))(@https://developer.android.com/reference/androidx/media3/common/C.VolumeFlags int flags)` **This method is deprecated.** Deprecated in Java |
| `boolean` | `[isDeviceMuted](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#isDeviceMuted())()` **This method is deprecated.** Deprecated in Java |
| `boolean` | `[isLoading](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#isLoading())()` **This method is deprecated.** Deprecated in Java |
| `boolean` | `[isPlayingAd](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#isPlayingAd())()` **This method is deprecated.** Deprecated in Java |
| `boolean` | `[isReleased](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#isReleased())()` **This method is deprecated.** Deprecated in Java |
| `boolean` | `[isScrubbingModeEnabled](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#isScrubbingModeEnabled())()` **This method is deprecated.** Deprecated in Java |
| `boolean` | `[isSleepingForOffload](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#isSleepingForOffload())()` **This method is deprecated.** Deprecated in Java |
| `boolean` | `[isTunnelingEnabled](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#isTunnelingEnabled())()` **This method is deprecated.** Deprecated in Java |
| `void` | `[moveMediaItems](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#moveMediaItems(int,int,int))(int fromIndex, int toIndex, int newIndex)` **This method is deprecated.** Deprecated in Java |
| `void` | `[mute](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#mute())()` **This method is deprecated.** Deprecated in Java |
| `void` | `[prepare](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#prepare())()` **This method is deprecated.** Deprecated in Java |
| `void` | `[prepare](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#prepare(androidx.media3.exoplayer.source.MediaSource))(https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource mediaSource)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMediaSource(androidx.media3.exoplayer.source.MediaSource)` and `https://developer.android.com/reference/androidx/media3/common/Player#prepare()` instead. <br /> |
| `void` | `[prepare](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#prepare(androidx.media3.exoplayer.source.MediaSource,boolean,boolean))( https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource mediaSource, boolean resetPosition, boolean resetState )` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMediaSource(androidx.media3.exoplayer.source.MediaSource,boolean)` and `https://developer.android.com/reference/androidx/media3/common/Player#prepare()` instead. <br /> |
| `void` | `[release](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#release())()` **This method is deprecated.** Deprecated in Java |
| `void` | `[removeAnalyticsListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#removeAnalyticsListener(androidx.media3.exoplayer.analytics.AnalyticsListener))(https://developer.android.com/reference/androidx/media3/exoplayer/analytics/AnalyticsListener listener)` **This method is deprecated.** Deprecated in Java |
| `void` | `[removeAudioCodecParametersChangeListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#removeAudioCodecParametersChangeListener(androidx.media3.exoplayer.CodecParametersChangeListener))( https://developer.android.com/reference/androidx/media3/exoplayer/CodecParametersChangeListener listener )` **This method is deprecated.** Deprecated in Java |
| `void` | `[removeAudioOffloadListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#removeAudioOffloadListener(androidx.media3.exoplayer.ExoPlayer.AudioOffloadListener))(https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.AudioOffloadListener listener)` **This method is deprecated.** Deprecated in Java |
| `void` | `[removeListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#removeListener(androidx.media3.common.Player.Listener))(https://developer.android.com/reference/androidx/media3/common/Player.Listener listener)` **This method is deprecated.** Deprecated in Java |
| `void` | `[removeMediaItems](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#removeMediaItems(int,int))(int fromIndex, int toIndex)` **This method is deprecated.** Deprecated in Java |
| `void` | `[removeVideoCodecParametersChangeListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#removeVideoCodecParametersChangeListener(androidx.media3.exoplayer.CodecParametersChangeListener))( https://developer.android.com/reference/androidx/media3/exoplayer/CodecParametersChangeListener listener )` **This method is deprecated.** Deprecated in Java |
| `void` | `[removeVideoFrameMetadataListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#removeVideoFrameMetadataListener(androidx.media3.exoplayer.video.VideoFrameMetadataListener))(https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoFrameMetadataListener listener)` **This method is deprecated.** Deprecated in Java |
| `void` | `[replaceMediaItems](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#replaceMediaItems(int,int,java.util.List<androidx.media3.common.MediaItem>))( int fromIndex, int toIndex, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/MediaItem> mediaItems )` **This method is deprecated.** Deprecated in Java |
| `void` | `[setAudioAttributes](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setAudioAttributes(androidx.media3.common.AudioAttributes,boolean))( https://developer.android.com/reference/androidx/media3/common/AudioAttributes audioAttributes, boolean handleAudioFocus )` **This method is deprecated.** Deprecated in Java |
| `void` | `[setAudioCodecParameters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setAudioCodecParameters(androidx.media3.exoplayer.CodecParameters))(https://developer.android.com/reference/androidx/media3/exoplayer/CodecParameters codecParameters)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setAudioSessionId](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setAudioSessionId(int))(int audioSessionId)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setAuxEffectInfo](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setAuxEffectInfo(androidx.media3.common.AuxEffectInfo))(https://developer.android.com/reference/androidx/media3/common/AuxEffectInfo auxEffectInfo)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setCameraMotionListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setCameraMotionListener(androidx.media3.exoplayer.video.spherical.CameraMotionListener))(https://developer.android.com/reference/androidx/media3/exoplayer/video/spherical/CameraMotionListener listener)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setDeviceMuted](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setDeviceMuted(boolean))(boolean muted)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setDeviceMuted(boolean,int)` instead. <br /> |
| `void` | `[setDeviceMuted](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setDeviceMuted(boolean,int))(boolean muted, @https://developer.android.com/reference/androidx/media3/common/C.VolumeFlags int flags)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setDeviceVolume](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setDeviceVolume(int))(int volume)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setDeviceVolume(int,int)` instead. <br /> |
| `void` | `[setDeviceVolume](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setDeviceVolume(int,int))(int volume, @https://developer.android.com/reference/androidx/media3/common/C.VolumeFlags int flags)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setEnforceAdPlaybackOnTimelineRefresh](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setEnforceAdPlaybackOnTimelineRefresh(boolean))( boolean enforceAdPlaybackOnTimelineRefresh )` **This method is deprecated.** Deprecated in Java |
| `void` | `[setForegroundMode](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setForegroundMode(boolean))(boolean foregroundMode)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setHandleAudioBecomingNoisy](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setHandleAudioBecomingNoisy(boolean))(boolean handleAudioBecomingNoisy)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setImageOutput](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setImageOutput(androidx.media3.exoplayer.image.ImageOutput))(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/image/ImageOutput imageOutput)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setMaxSeekToPreviousPositionMs](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMaxSeekToPreviousPositionMs(long))(long maxSeekToPreviousPositionMs)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setMediaItems](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMediaItems(java.util.List<androidx.media3.common.MediaItem>,boolean))(https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/MediaItem> mediaItems, boolean resetPosition)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setMediaItems](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMediaItems(java.util.List<androidx.media3.common.MediaItem>,int,long))( https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/MediaItem> mediaItems, int startIndex, long startPositionMs )` **This method is deprecated.** Deprecated in Java |
| `void` | `[setMediaSource](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMediaSource(androidx.media3.exoplayer.source.MediaSource))(https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource mediaSource)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setMediaSource](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMediaSource(androidx.media3.exoplayer.source.MediaSource,boolean))(https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource mediaSource, boolean resetPosition)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setMediaSource](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMediaSource(androidx.media3.exoplayer.source.MediaSource,long))(https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource mediaSource, long startPositionMs)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setMediaSources](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMediaSources(java.util.List<androidx.media3.exoplayer.source.MediaSource>))(https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource> mediaSources)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setMediaSources](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMediaSources(java.util.List<androidx.media3.exoplayer.source.MediaSource>,boolean))(https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource> mediaSources, boolean resetPosition)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setMediaSources](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMediaSources(java.util.List<androidx.media3.exoplayer.source.MediaSource>,int,long))( https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource> mediaSources, int startMediaItemIndex, long startPositionMs )` **This method is deprecated.** Deprecated in Java |
| `void` | `[setPauseAtEndOfMediaItems](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setPauseAtEndOfMediaItems(boolean))(boolean pauseAtEndOfMediaItems)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setPlayWhenReady](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setPlayWhenReady(boolean))(boolean playWhenReady)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setPlaybackParameters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setPlaybackParameters(androidx.media3.common.PlaybackParameters))(https://developer.android.com/reference/androidx/media3/common/PlaybackParameters playbackParameters)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setPlaylistMetadata](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setPlaylistMetadata(androidx.media3.common.MediaMetadata))(https://developer.android.com/reference/androidx/media3/common/MediaMetadata mediaMetadata)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setPreferredAudioDevice](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setPreferredAudioDevice(android.media.AudioDeviceInfo))(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/media/AudioDeviceInfo.html audioDeviceInfo)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setPreloadConfiguration](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setPreloadConfiguration(androidx.media3.exoplayer.ExoPlayer.PreloadConfiguration))( https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.PreloadConfiguration preloadConfiguration )` **This method is deprecated.** Deprecated in Java |
| `void` | `[setPriority](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setPriority(int))(@https://developer.android.com/reference/androidx/media3/common/C.Priority int priority)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setPriorityTaskManager](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setPriorityTaskManager(androidx.media3.common.PriorityTaskManager))( @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/PriorityTaskManager priorityTaskManager )` **This method is deprecated.** Deprecated in Java |
| `void` | `[setRepeatMode](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setRepeatMode(int))(@https://developer.android.com/reference/androidx/media3/common/Player.RepeatMode int repeatMode)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setScrubbingModeEnabled](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setScrubbingModeEnabled(boolean))(boolean scrubbingModeEnabled)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setScrubbingModeParameters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setScrubbingModeParameters(androidx.media3.exoplayer.ScrubbingModeParameters))( https://developer.android.com/reference/androidx/media3/exoplayer/ScrubbingModeParameters scrubbingModeParameters )` **This method is deprecated.** Deprecated in Java |
| `void` | `[setSeekBackIncrementMs](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setSeekBackIncrementMs(long))(long seekBackIncrementMs)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setSeekForwardIncrementMs](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setSeekForwardIncrementMs(long))(long seekForwardIncrementMs)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setSeekParameters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setSeekParameters(androidx.media3.exoplayer.SeekParameters))(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/SeekParameters seekParameters)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setShuffleModeEnabled](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setShuffleModeEnabled(boolean))(boolean shuffleModeEnabled)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setShuffleOrder](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setShuffleOrder(androidx.media3.exoplayer.source.ShuffleOrder))(https://developer.android.com/reference/androidx/media3/exoplayer/source/ShuffleOrder shuffleOrder)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setSkipSilenceEnabled](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setSkipSilenceEnabled(boolean))(boolean skipSilenceEnabled)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setTrackSelectionParameters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setTrackSelectionParameters(androidx.media3.common.TrackSelectionParameters))(https://developer.android.com/reference/androidx/media3/common/TrackSelectionParameters parameters)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setVideoChangeFrameRateStrategy](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVideoChangeFrameRateStrategy(int))( @https://developer.android.com/reference/androidx/media3/common/C.VideoChangeFrameRateStrategy int videoChangeFrameRateStrategy )` **This method is deprecated.** Deprecated in Java |
| `void` | `[setVideoCodecParameters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVideoCodecParameters(androidx.media3.exoplayer.CodecParameters))(https://developer.android.com/reference/androidx/media3/exoplayer/CodecParameters codecParameters)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setVideoEffects](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVideoEffects(java.util.List<androidx.media3.common.Effect>))(https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/Effect> videoEffects)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setVideoFrameMetadataListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVideoFrameMetadataListener(androidx.media3.exoplayer.video.VideoFrameMetadataListener))(https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoFrameMetadataListener listener)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#addVideoFrameMetadataListener(androidx.media3.exoplayer.video.VideoFrameMetadataListener)` and `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#removeVideoFrameMetadataListener(androidx.media3.exoplayer.video.VideoFrameMetadataListener)` instead. <br /> |
| `void` | `[setVideoScalingMode](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVideoScalingMode(int))(@https://developer.android.com/reference/androidx/media3/common/C.VideoScalingMode int videoScalingMode)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setVideoSurface](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVideoSurface(android.view.Surface))(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/view/Surface.html surface)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setVideoSurfaceHolder](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVideoSurfaceHolder(android.view.SurfaceHolder))(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/view/SurfaceHolder.html surfaceHolder)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setVideoSurfaceView](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVideoSurfaceView(android.view.SurfaceView))(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/view/SurfaceView.html surfaceView)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setVideoTextureView](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVideoTextureView(android.view.TextureView))(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/view/TextureView.html textureView)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setVirtualDeviceId](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVirtualDeviceId(int))(int virtualDeviceId)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setVolume](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVolume(float))(float volume)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setWakeMode](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setWakeMode(int))(@https://developer.android.com/reference/androidx/media3/common/C.WakeMode int wakeMode)` **This method is deprecated.** Deprecated in Java |
| `void` | `[stop](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#stop())()` **This method is deprecated.** Deprecated in Java |
| `void` | `[unmute](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#unmute())()` **This method is deprecated.** Deprecated in Java |

| ### Protected methods |
|---|---|
| `void` | `[seekTo](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#seekTo(int,long,int,boolean))( int mediaItemIndex, long positionMs, @https://developer.android.com/reference/androidx/media3/common/Player.Command int seekCommand, boolean isRepeatingCurrentItem )` **This method is deprecated.** Deprecated in Java |

### Inherited Constants

From [androidx.media3.exoplayer.ExoPlayer](https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer) `static final long` `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi
https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#DEFAULT_DETACH_SURFACE_TIMEOUT_MS() = 2000`

**This field is deprecated.**

Use `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.Builder#DEFAULT_DETACH_SURFACE_TIMEOUT_MS()` instead.

<br />

`static final long` `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi
https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#DEFAULT_RELEASE_TIMEOUT_MS() = 500`

**This field is deprecated.**

Use `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.Builder#DEFAULT_RELEASE_TIMEOUT_MS()` instead.

<br />

`static final int` `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi
https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#DEFAULT_STUCK_BUFFERING_DETECTION_TIMEOUT_MS() = 600000`

**This field is deprecated.**

Use `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.Builder#DEFAULT_STUCK_BUFFERING_DETECTION_TIMEOUT_MS()` instead.

<br />

`static final int` `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi
https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#DEFAULT_STUCK_PLAYING_NOT_ENDING_TIMEOUT_MS() = 60000`

**This field is deprecated.**

Use `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.Builder#DEFAULT_STUCK_PLAYING_NOT_ENDING_TIMEOUT_MS()` instead.

<br />

`static final int` `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi
https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#DEFAULT_STUCK_SUPPRESSED_DETECTION_TIMEOUT_MS() = 600000`

**This field is deprecated.**

Use `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.Builder#DEFAULT_STUCK_SUPPRESSED_DETECTION_TIMEOUT_MS()` instead.

<br />

From [androidx.media3.common.Player](https://developer.android.com/reference/androidx/media3/common/Player) `static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_ADJUST_DEVICE_VOLUME() = 26`

**This field is deprecated.**

Use `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS()` instead.

<br />

`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS() = 34`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_CHANGE_MEDIA_ITEMS() = 20`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_AUDIO_ATTRIBUTES() = 21`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_CURRENT_MEDIA_ITEM() = 16`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_DEVICE_VOLUME() = 23`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_MEDIA_ITEMS_METADATA() = 18`

**This field is deprecated.**

Use `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_METADATA()` instead.

<br />

`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_METADATA() = 18`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_TEXT() = 28`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_TIMELINE() = 17`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_TRACKS() = 30`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_VOLUME() = 22`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_INVALID() = -1`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_PLAY_PAUSE() = 1`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_PREPARE() = 2`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_RELEASE() = 32`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SEEK_BACK() = 11`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SEEK_FORWARD() = 12`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM() = 5`

**This field is deprecated.** Deprecated in Java
`static final int` `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi
https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SEEK_IN_CURRENT_WINDOW() = 5`

**This field is deprecated.**

Use `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM()` instead.

<br />

`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SEEK_TO_DEFAULT_POSITION() = 4`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SEEK_TO_MEDIA_ITEM() = 10`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SEEK_TO_NEXT() = 9`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SEEK_TO_NEXT_MEDIA_ITEM() = 8`

**This field is deprecated.** Deprecated in Java
`static final int` `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi
https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SEEK_TO_NEXT_WINDOW() = 8`

**This field is deprecated.**

Use `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SEEK_TO_NEXT_MEDIA_ITEM()` instead.

<br />

`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SEEK_TO_PREVIOUS() = 7`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM() = 6`

**This field is deprecated.** Deprecated in Java
`static final int` `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi
https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SEEK_TO_PREVIOUS_WINDOW() = 6`

**This field is deprecated.**

Use `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM()` instead.

<br />

`static final int` `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi
https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SEEK_TO_WINDOW() = 10`

**This field is deprecated.**

Use `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SEEK_TO_MEDIA_ITEM()` instead.

<br />

`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_AUDIO_ATTRIBUTES() = 35`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_DEVICE_VOLUME() = 25`

**This field is deprecated.**

Use `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS()` instead.

<br />

`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS() = 33`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_MEDIA_ITEM() = 31`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_MEDIA_ITEMS_METADATA() = 19`

**This field is deprecated.**

Use `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_PLAYLIST_METADATA()` instead.

<br />

`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_PLAYLIST_METADATA() = 19`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_REPEAT_MODE() = 15`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_SHUFFLE_MODE() = 14`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_SPEED_AND_PITCH() = 13`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_TRACK_SELECTION_PARAMETERS() = 29`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_VIDEO_SURFACE() = 27`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_VOLUME() = 24`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_STOP() = 3`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#DISCONTINUITY_REASON_AUTO_TRANSITION() = 0`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#DISCONTINUITY_REASON_INTERNAL() = 5`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#DISCONTINUITY_REASON_REMOVE() = 4`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#DISCONTINUITY_REASON_SEEK() = 1`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#DISCONTINUITY_REASON_SEEK_ADJUSTMENT() = 2`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#DISCONTINUITY_REASON_SILENCE_SKIP() = 6`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#DISCONTINUITY_REASON_SKIP() = 3`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_AUDIO_ATTRIBUTES_CHANGED() = 20`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_AUDIO_SESSION_ID() = 21`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_AVAILABLE_COMMANDS_CHANGED() = 13`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_CUES() = 27`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_DEVICE_INFO_CHANGED() = 29`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_DEVICE_VOLUME_CHANGED() = 30`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_IS_LOADING_CHANGED() = 3`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_IS_PLAYING_CHANGED() = 7`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED() = 18`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_MEDIA_ITEM_TRANSITION() = 1`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_MEDIA_METADATA_CHANGED() = 14`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_METADATA() = 28`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_PLAYBACK_PARAMETERS_CHANGED() = 12`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_PLAYBACK_STATE_CHANGED() = 4`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_PLAYBACK_SUPPRESSION_REASON_CHANGED() = 6`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_PLAYER_ERROR() = 10`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_PLAYLIST_METADATA_CHANGED() = 15`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_PLAY_WHEN_READY_CHANGED() = 5`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_POSITION_DISCONTINUITY() = 11`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_RENDERED_FIRST_FRAME() = 26`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_REPEAT_MODE_CHANGED() = 8`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_SEEK_BACK_INCREMENT_CHANGED() = 16`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_SEEK_FORWARD_INCREMENT_CHANGED() = 17`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_SHUFFLE_MODE_ENABLED_CHANGED() = 9`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_SKIP_SILENCE_ENABLED_CHANGED() = 23`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_SURFACE_SIZE_CHANGED() = 24`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_TIMELINE_CHANGED() = 0`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_TRACKS_CHANGED() = 2`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_TRACK_SELECTION_PARAMETERS_CHANGED() = 19`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_VIDEO_SIZE_CHANGED() = 25`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#EVENT_VOLUME_CHANGED() = 22`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#MEDIA_ITEM_TRANSITION_REASON_AUTO() = 1`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED() = 3`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#MEDIA_ITEM_TRANSITION_REASON_REPEAT() = 0`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#MEDIA_ITEM_TRANSITION_REASON_SEEK() = 2`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#PLAYBACK_SUPPRESSION_REASON_NONE() = 0`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#PLAYBACK_SUPPRESSION_REASON_SCRUBBING() = 4`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOSS() = 1`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_OUTPUT() = 3`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_ROUTE() = 2`

**This field is deprecated.**

Use `https://developer.android.com/reference/androidx/media3/common/Player#PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_OUTPUT()` instead.

<br />

`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#PLAY_WHEN_READY_CHANGE_REASON_AUDIO_BECOMING_NOISY() = 3`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#PLAY_WHEN_READY_CHANGE_REASON_AUDIO_FOCUS_LOSS() = 2`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM() = 5`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#PLAY_WHEN_READY_CHANGE_REASON_REMOTE() = 4`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#PLAY_WHEN_READY_CHANGE_REASON_SUPPRESSED_TOO_LONG() = 6`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST() = 1`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#REPEAT_MODE_ALL() = 2`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#REPEAT_MODE_OFF() = 0`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#REPEAT_MODE_ONE() = 1`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#STATE_BUFFERING() = 2`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#STATE_ENDED() = 4`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#STATE_IDLE() = 1`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#STATE_READY() = 3`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED() = 0`

**This field is deprecated.** Deprecated in Java
`static final int` `https://developer.android.com/reference/androidx/media3/common/Player#TIMELINE_CHANGE_REASON_SOURCE_UPDATE() = 1`

**This field is deprecated.** Deprecated in Java

### Inherited fields

From [androidx.media3.common.BasePlayer](https://developer.android.com/reference/androidx/media3/common/BasePlayer) `final https://developer.android.com/reference/androidx/media3/common/Timeline.Window` `https://developer.android.com/reference/androidx/media3/common/BasePlayer#window()`

**This field is deprecated.** Deprecated in Java

### Inherited methods

From [androidx.media3.common.BasePlayer](https://developer.android.com/reference/androidx/media3/common/BasePlayer) `final void` `[addMediaItem](https://developer.android.com/reference/androidx/media3/common/BasePlayer#addMediaItem(androidx.media3.common.MediaItem))(https://developer.android.com/reference/androidx/media3/common/MediaItem mediaItem)`

**This method is deprecated.** Deprecated in Java
`final void` `[addMediaItem](https://developer.android.com/reference/androidx/media3/common/BasePlayer#addMediaItem(int,androidx.media3.common.MediaItem))(int index, https://developer.android.com/reference/androidx/media3/common/MediaItem mediaItem)`

**This method is deprecated.** Deprecated in Java
`final void` `[addMediaItems](https://developer.android.com/reference/androidx/media3/common/BasePlayer#addMediaItems(java.util.List<androidx.media3.common.MediaItem>))(https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/MediaItem> mediaItems)`

**This method is deprecated.** Deprecated in Java
`final boolean` `[canAdvertiseSession](https://developer.android.com/reference/androidx/media3/common/BasePlayer#canAdvertiseSession())()`

**This method is deprecated.** Deprecated in Java
`final void` `[clearMediaItems](https://developer.android.com/reference/androidx/media3/common/BasePlayer#clearMediaItems())()`

**This method is deprecated.** Deprecated in Java
`final int` `[getBufferedPercentage](https://developer.android.com/reference/androidx/media3/common/BasePlayer#getBufferedPercentage())()`

**This method is deprecated.** Deprecated in Java
`final long` `[getContentDuration](https://developer.android.com/reference/androidx/media3/common/BasePlayer#getContentDuration())()`

**This method is deprecated.** Deprecated in Java
`final long` `[getCurrentLiveOffset](https://developer.android.com/reference/androidx/media3/common/BasePlayer#getCurrentLiveOffset())()`

**This method is deprecated.** Deprecated in Java
`final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/Object.html` `[getCurrentManifest](https://developer.android.com/reference/androidx/media3/common/BasePlayer#getCurrentManifest())()`

**This method is deprecated.** Deprecated in Java
`final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/MediaItem` `[getCurrentMediaItem](https://developer.android.com/reference/androidx/media3/common/BasePlayer#getCurrentMediaItem())()`

**This method is deprecated.** Deprecated in Java
`final int` `[getCurrentWindowIndex](https://developer.android.com/reference/androidx/media3/common/BasePlayer#getCurrentWindowIndex())()`

**This method is deprecated.**

Use `https://developer.android.com/reference/androidx/media3/common/Player#getCurrentMediaItemIndex()` instead.

<br />

`final https://developer.android.com/reference/androidx/media3/common/MediaItem` `[getMediaItemAt](https://developer.android.com/reference/androidx/media3/common/BasePlayer#getMediaItemAt(int))(int index)`

**This method is deprecated.** Deprecated in Java
`final int` `[getMediaItemCount](https://developer.android.com/reference/androidx/media3/common/BasePlayer#getMediaItemCount())()`

**This method is deprecated.** Deprecated in Java
`final int` `[getNextMediaItemIndex](https://developer.android.com/reference/androidx/media3/common/BasePlayer#getNextMediaItemIndex())()`

**This method is deprecated.** Deprecated in Java
`final int` `[getNextWindowIndex](https://developer.android.com/reference/androidx/media3/common/BasePlayer#getNextWindowIndex())()`

**This method is deprecated.**

Use `https://developer.android.com/reference/androidx/media3/common/BasePlayer#getNextMediaItemIndex()` instead.

<br />

`final int` `[getPreviousMediaItemIndex](https://developer.android.com/reference/androidx/media3/common/BasePlayer#getPreviousMediaItemIndex())()`

**This method is deprecated.** Deprecated in Java
`final int` `[getPreviousWindowIndex](https://developer.android.com/reference/androidx/media3/common/BasePlayer#getPreviousWindowIndex())()`

**This method is deprecated.**

Use `https://developer.android.com/reference/androidx/media3/common/BasePlayer#getPreviousMediaItemIndex()` instead.

<br />

`final boolean` `[hasNextMediaItem](https://developer.android.com/reference/androidx/media3/common/BasePlayer#hasNextMediaItem())()`

**This method is deprecated.** Deprecated in Java
`final boolean` `[hasPreviousMediaItem](https://developer.android.com/reference/androidx/media3/common/BasePlayer#hasPreviousMediaItem())()`

**This method is deprecated.** Deprecated in Java
`final boolean` `[isCommandAvailable](https://developer.android.com/reference/androidx/media3/common/BasePlayer#isCommandAvailable(int))(@https://developer.android.com/reference/androidx/media3/common/Player.Command int command)`

**This method is deprecated.** Deprecated in Java
`final boolean` `[isCurrentMediaItemDynamic](https://developer.android.com/reference/androidx/media3/common/BasePlayer#isCurrentMediaItemDynamic())()`

**This method is deprecated.** Deprecated in Java
`final boolean` `[isCurrentMediaItemLive](https://developer.android.com/reference/androidx/media3/common/BasePlayer#isCurrentMediaItemLive())()`

**This method is deprecated.** Deprecated in Java
`final boolean` `[isCurrentMediaItemSeekable](https://developer.android.com/reference/androidx/media3/common/BasePlayer#isCurrentMediaItemSeekable())()`

**This method is deprecated.** Deprecated in Java
`final boolean` `[isCurrentWindowDynamic](https://developer.android.com/reference/androidx/media3/common/BasePlayer#isCurrentWindowDynamic())()`

**This method is deprecated.**

Use `https://developer.android.com/reference/androidx/media3/common/BasePlayer#isCurrentMediaItemDynamic()` instead.

<br />

`final boolean` `[isCurrentWindowLive](https://developer.android.com/reference/androidx/media3/common/BasePlayer#isCurrentWindowLive())()`

**This method is deprecated.**

Use `https://developer.android.com/reference/androidx/media3/common/BasePlayer#isCurrentMediaItemLive()` instead.

<br />

`final boolean` `[isCurrentWindowSeekable](https://developer.android.com/reference/androidx/media3/common/BasePlayer#isCurrentWindowSeekable())()`

**This method is deprecated.**

Use `https://developer.android.com/reference/androidx/media3/common/BasePlayer#isCurrentMediaItemSeekable()` instead.

<br />

`final boolean` `[isPlaying](https://developer.android.com/reference/androidx/media3/common/BasePlayer#isPlaying())()`

**This method is deprecated.** Deprecated in Java
`final void` `[moveMediaItem](https://developer.android.com/reference/androidx/media3/common/BasePlayer#moveMediaItem(int,int))(int currentIndex, int newIndex)`

**This method is deprecated.** Deprecated in Java
`final void` `[pause](https://developer.android.com/reference/androidx/media3/common/BasePlayer#pause())()`

**This method is deprecated.** Deprecated in Java
`final void` `[play](https://developer.android.com/reference/androidx/media3/common/BasePlayer#play())()`

**This method is deprecated.** Deprecated in Java
`final void` `[removeMediaItem](https://developer.android.com/reference/androidx/media3/common/BasePlayer#removeMediaItem(int))(int index)`

**This method is deprecated.** Deprecated in Java
`final void` `[replaceMediaItem](https://developer.android.com/reference/androidx/media3/common/BasePlayer#replaceMediaItem(int,androidx.media3.common.MediaItem))(int index, https://developer.android.com/reference/androidx/media3/common/MediaItem mediaItem)`

**This method is deprecated.** Deprecated in Java
`final void` `[seekBack](https://developer.android.com/reference/androidx/media3/common/BasePlayer#seekBack())()`

**This method is deprecated.** Deprecated in Java
`final void` `[seekForward](https://developer.android.com/reference/androidx/media3/common/BasePlayer#seekForward())()`

**This method is deprecated.** Deprecated in Java
`final void` `[seekTo](https://developer.android.com/reference/androidx/media3/common/BasePlayer#seekTo(long))(long positionMs)`

**This method is deprecated.** Deprecated in Java
`final void` `[seekTo](https://developer.android.com/reference/androidx/media3/common/BasePlayer#seekTo(int,long))(int mediaItemIndex, long positionMs)`

**This method is deprecated.** Deprecated in Java
`final void` `[seekToDefaultPosition](https://developer.android.com/reference/androidx/media3/common/BasePlayer#seekToDefaultPosition())()`

**This method is deprecated.** Deprecated in Java
`final void` `[seekToDefaultPosition](https://developer.android.com/reference/androidx/media3/common/BasePlayer#seekToDefaultPosition(int))(int mediaItemIndex)`

**This method is deprecated.** Deprecated in Java
`final void` `[seekToNext](https://developer.android.com/reference/androidx/media3/common/BasePlayer#seekToNext())()`

**This method is deprecated.** Deprecated in Java
`final void` `[seekToNextMediaItem](https://developer.android.com/reference/androidx/media3/common/BasePlayer#seekToNextMediaItem())()`

**This method is deprecated.** Deprecated in Java
`final void` `[seekToPrevious](https://developer.android.com/reference/androidx/media3/common/BasePlayer#seekToPrevious())()`

**This method is deprecated.** Deprecated in Java
`final void` `[seekToPreviousMediaItem](https://developer.android.com/reference/androidx/media3/common/BasePlayer#seekToPreviousMediaItem())()`

**This method is deprecated.** Deprecated in Java
`final void` `[setMediaItem](https://developer.android.com/reference/androidx/media3/common/BasePlayer#setMediaItem(androidx.media3.common.MediaItem))(https://developer.android.com/reference/androidx/media3/common/MediaItem mediaItem)`

**This method is deprecated.** Deprecated in Java
`final void` `[setMediaItem](https://developer.android.com/reference/androidx/media3/common/BasePlayer#setMediaItem(androidx.media3.common.MediaItem,boolean))(https://developer.android.com/reference/androidx/media3/common/MediaItem mediaItem, boolean resetPosition)`

**This method is deprecated.** Deprecated in Java
`final void` `[setMediaItem](https://developer.android.com/reference/androidx/media3/common/BasePlayer#setMediaItem(androidx.media3.common.MediaItem,long))(https://developer.android.com/reference/androidx/media3/common/MediaItem mediaItem, long startPositionMs)`

**This method is deprecated.** Deprecated in Java
`final void` `[setMediaItems](https://developer.android.com/reference/androidx/media3/common/BasePlayer#setMediaItems(java.util.List<androidx.media3.common.MediaItem>))(https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/MediaItem> mediaItems)`

**This method is deprecated.** Deprecated in Java
`final void` `[setPlaybackSpeed](https://developer.android.com/reference/androidx/media3/common/BasePlayer#setPlaybackSpeed(float))(float speed)`

**This method is deprecated.** Deprecated in Java
From [androidx.media3.common.Player](https://developer.android.com/reference/androidx/media3/common/Player) `abstract void` `[setPlaybackSpeed](https://developer.android.com/reference/androidx/media3/common/Player#setPlaybackSpeed(float))(@https://developer.android.com/reference/androidx/annotation/FloatRange(from = 0, fromInclusive = false) float speed)`

**This method is deprecated.** Deprecated in Java

## Protected constructors

### SimpleExoPlayer

```
protected [SimpleExoPlayer](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#SimpleExoPlayer(androidx.media3.exoplayer.SimpleExoPlayer.Builder))(SimpleExoPlayer.Builder builder)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer.Builder builder` | The `https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer.Builder` to obtain all construction parameters. |

### SimpleExoPlayer

```
protected [SimpleExoPlayer](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#SimpleExoPlayer(android.content.Context,androidx.media3.exoplayer.RenderersFactory,androidx.media3.exoplayer.trackselection.TrackSelector,androidx.media3.exoplayer.source.MediaSource.Factory,androidx.media3.exoplayer.LoadControl,androidx.media3.exoplayer.upstream.BandwidthMeter,androidx.media3.exoplayer.analytics.AnalyticsCollector,boolean,androidx.media3.common.util.Clock,android.os.Looper))(
    Context context,
    RenderersFactory renderersFactory,
    TrackSelector trackSelector,
    MediaSource.Factory mediaSourceFactory,
    LoadControl loadControl,
    BandwidthMeter bandwidthMeter,
    AnalyticsCollector analyticsCollector,
    boolean useLazyPreparation,
    Clock clock,
    Looper applicationLooper
)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use the `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.Builder`.

## Public methods

### addAnalyticsListener

```
public void [addAnalyticsListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addAnalyticsListener(androidx.media3.exoplayer.analytics.AnalyticsListener))(AnalyticsListener listener)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Adds an `https://developer.android.com/reference/androidx/media3/exoplayer/analytics/AnalyticsListener` to receive analytics events.

This method can be called from any thread.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/analytics/AnalyticsListener listener` | The listener to be added. |

### addAudioCodecParametersChangeListener

```
public void [addAudioCodecParametersChangeListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addAudioCodecParametersChangeListener(androidx.media3.exoplayer.CodecParametersChangeListener,java.util.List<java.lang.String>))(
    CodecParametersChangeListener listener,
    List<String> keys
)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Adds a listener for audio codec parameter changes.

The listener will be called on the application thread. Upon registration, the listener will be immediately called with the last known values for the subscribed keys.

The default `https://developer.android.com/reference/android/media/MediaCodec.html` based renderers only support this feature on API level 29 and above.

**Note:** When used with `https://developer.android.com/reference/android/media/MediaCodec.html`, observing vendor-specific parameter changes requires API level 31 or higher. On API levels 29 and 30, any requested vendor-specific keys will be ignored.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/CodecParametersChangeListener listener` | The `https://developer.android.com/reference/androidx/media3/exoplayer/CodecParametersChangeListener` to add. |
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/String.html> keys` | The list of parameter keys to subscribe to. |

### addAudioOffloadListener

```
public void [addAudioOffloadListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addAudioOffloadListener(androidx.media3.exoplayer.ExoPlayer.AudioOffloadListener))(ExoPlayer.AudioOffloadListener listener)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Adds a listener to receive audio offload events.

This method can be called from any thread.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.AudioOffloadListener listener` | The listener to register. |

### addListener

```
public void [addListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addListener(androidx.media3.common.Player.Listener))(Player.Listener listener)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Registers a listener to receive all events from the player.

The listener's methods will be called on the thread associated with `https://developer.android.com/reference/androidx/media3/common/Player#getApplicationLooper()`.

This method can be called from any thread.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener listener` | The listener to register. |

### addMediaItems

```
public void [addMediaItems](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addMediaItems(int,java.util.List<androidx.media3.common.MediaItem>))(int index, List<MediaItem> mediaItems)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Adds a list of media items at the given index of the playlist.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_CHANGE_MEDIA_ITEMS()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `int index` | The index at which to add the media items. If the index is larger than the size of the playlist, the media items are added to the end of the playlist. |
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/MediaItem> mediaItems` | The `https://developer.android.com/reference/androidx/media3/common/MediaItem` to add. |

### addMediaSource

```
public void [addMediaSource](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addMediaSource(androidx.media3.exoplayer.source.MediaSource))(MediaSource mediaSource)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Adds a media source to the end of the playlist.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource mediaSource` | The `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource` to add. |

### addMediaSource

```
public void [addMediaSource](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addMediaSource(int,androidx.media3.exoplayer.source.MediaSource))(int index, MediaSource mediaSource)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Adds a media source at the given index of the playlist.

| Parameters |
|---|---|
| `int index` | The index at which to add the source. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource mediaSource` | The `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource` to add. |

### addMediaSources

```
public void [addMediaSources](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addMediaSources(java.util.List<androidx.media3.exoplayer.source.MediaSource>))(List<MediaSource> mediaSources)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Adds a list of media sources to the end of the playlist.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource> mediaSources` | The `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource` to add. |

### addMediaSources

```
public void [addMediaSources](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addMediaSources(int,java.util.List<androidx.media3.exoplayer.source.MediaSource>))(int index, List<MediaSource> mediaSources)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Adds a list of media sources at the given index of the playlist.

| Parameters |
|---|---|
| `int index` | The index at which to add the media sources. |
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource> mediaSources` | The `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource` to add. |

### addVideoCodecParametersChangeListener

```
public void [addVideoCodecParametersChangeListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addVideoCodecParametersChangeListener(androidx.media3.exoplayer.CodecParametersChangeListener,java.util.List<java.lang.String>))(
    CodecParametersChangeListener listener,
    List<String> keys
)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Adds a listener for video codec parameter changes.

The listener will be called on the application thread. Upon registration, the listener will be immediately called with the last known values for the subscribed keys.

The default `https://developer.android.com/reference/android/media/MediaCodec.html` based renderers only support this feature on API level 29 and above.

**Note:** When used with `https://developer.android.com/reference/android/media/MediaCodec.html`, observing vendor-specific parameter changes requires API level 31 or higher. On API levels 29 and 30, any requested vendor-specific keys will be ignored.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/CodecParametersChangeListener listener` | The `https://developer.android.com/reference/androidx/media3/exoplayer/CodecParametersChangeListener` to add. |
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/String.html> keys` | The list of parameter keys to subscribe to. |

### addVideoFrameMetadataListener

```
public void [addVideoFrameMetadataListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#addVideoFrameMetadataListener(androidx.media3.exoplayer.video.VideoFrameMetadataListener))(VideoFrameMetadataListener listener)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Adds a listener to receive video frame metadata events.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoFrameMetadataListener listener` | The listener to add. |

### clearAuxEffectInfo

```
public void [clearAuxEffectInfo](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#clearAuxEffectInfo())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Detaches any previously attached auxiliary audio effect from the underlying audio track.

### clearCameraMotionListener

```
public void [clearCameraMotionListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#clearCameraMotionListener(androidx.media3.exoplayer.video.spherical.CameraMotionListener))(CameraMotionListener listener)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Clears the listener which receives camera motion events if it matches the one passed. Else does nothing.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/video/spherical/CameraMotionListener listener` | The listener to clear. |

### clearVideoFrameMetadataListener

```
public void [clearVideoFrameMetadataListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#clearVideoFrameMetadataListener(androidx.media3.exoplayer.video.VideoFrameMetadataListener))(VideoFrameMetadataListener listener)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#removeVideoFrameMetadataListener(androidx.media3.exoplayer.video.VideoFrameMetadataListener)` instead.

Clears the listener which receives video frame metadata events.

Calling this method is equivalent to calling `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#removeVideoFrameMetadataListener(androidx.media3.exoplayer.video.VideoFrameMetadataListener)`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoFrameMetadataListener listener` | The listener to clear. |

### clearVideoSurface

```
public void [clearVideoSurface](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#clearVideoSurface())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Clears any `https://developer.android.com/reference/android/view/Surface.html`, `https://developer.android.com/reference/android/view/SurfaceHolder.html`, `https://developer.android.com/reference/android/view/SurfaceView.html` or `https://developer.android.com/reference/android/view/TextureView.html` currently set on the player.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_VIDEO_SURFACE()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

### clearVideoSurface

```
public void [clearVideoSurface](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#clearVideoSurface(android.view.Surface))(@Nullable Surface surface)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Clears the `https://developer.android.com/reference/android/view/Surface.html` onto which video is being rendered if it matches the one passed. Else does nothing.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_VIDEO_SURFACE()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/view/Surface.html surface` | The surface to clear. |

### clearVideoSurfaceHolder

```
public void [clearVideoSurfaceHolder](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#clearVideoSurfaceHolder(android.view.SurfaceHolder))(@Nullable SurfaceHolder surfaceHolder)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Clears the `https://developer.android.com/reference/android/view/SurfaceHolder.html` that holds the `https://developer.android.com/reference/android/view/Surface.html` onto which video is being rendered if it matches the one passed. Else does nothing.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_VIDEO_SURFACE()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/view/SurfaceHolder.html surfaceHolder` | The surface holder to clear. |

### clearVideoSurfaceView

```
public void [clearVideoSurfaceView](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#clearVideoSurfaceView(android.view.SurfaceView))(@Nullable SurfaceView surfaceView)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Clears the `https://developer.android.com/reference/android/view/SurfaceView.html` onto which video is being rendered if it matches the one passed. Else does nothing.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_VIDEO_SURFACE()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/view/SurfaceView.html surfaceView` | The texture view to clear. |

### clearVideoTextureView

```
public void [clearVideoTextureView](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#clearVideoTextureView(android.view.TextureView))(@Nullable TextureView textureView)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Clears the `https://developer.android.com/reference/android/view/TextureView.html` onto which video is being rendered if it matches the one passed. Else does nothing.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_VIDEO_SURFACE()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/view/TextureView.html textureView` | The texture view to clear. |

### createMessage

```
public PlayerMessage [createMessage](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#createMessage(androidx.media3.exoplayer.PlayerMessage.Target))(PlayerMessage.Target target)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Creates a message that can be sent to a `https://developer.android.com/reference/androidx/media3/exoplayer/PlayerMessage.Target`. By default, the message will be delivered immediately without blocking on the playback thread. The default `https://developer.android.com/reference/androidx/media3/exoplayer/PlayerMessage#getType()` is 0 and the default `https://developer.android.com/reference/androidx/media3/exoplayer/PlayerMessage#getPayload()` is null. If a position is specified with `https://developer.android.com/reference/androidx/media3/exoplayer/PlayerMessage#setPosition(long)`, the message will be delivered at this position in the current media item defined by `https://developer.android.com/reference/androidx/media3/common/Player#getCurrentMediaItemIndex()`. Alternatively, the message can be sent at a specific mediaItem using `https://developer.android.com/reference/androidx/media3/exoplayer/PlayerMessage#setPosition(int,long)`.

### decreaseDeviceVolume

```
public void [decreaseDeviceVolume](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#decreaseDeviceVolume())()
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#decreaseDeviceVolume(int)` instead.

### decreaseDeviceVolume

```
public void [decreaseDeviceVolume](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#decreaseDeviceVolume(int))(@C.VolumeFlags int flags)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Decreases the volume of the device.

The `https://developer.android.com/reference/androidx/media3/common/Player#getDeviceVolume()` device volume cannot be decreased below `https://developer.android.com/reference/androidx/media3/common/DeviceInfo#minVolume()`.

Note that this method affects the device volume. To change the volume of the current stream only, use `https://developer.android.com/reference/androidx/media3/common/Player#setVolume(float)`.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/media3/common/C.VolumeFlags int flags` | Either 0 or a bitwise combination of one or more `https://developer.android.com/reference/androidx/media3/common/C.VolumeFlags`. |

### getAnalyticsCollector

```
public AnalyticsCollector [getAnalyticsCollector](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getAnalyticsCollector())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the `https://developer.android.com/reference/androidx/media3/exoplayer/analytics/AnalyticsCollector` used for collecting analytics events.

### getApplicationLooper

```
public Looper [getApplicationLooper](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getApplicationLooper())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the `https://developer.android.com/reference/android/os/Looper.html` associated with the application thread that's used to access the player and on which player events are received.

This method can be called from any thread.

### getAudioAttributes

```
public AudioAttributes [getAudioAttributes](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getAudioAttributes())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the attributes for audio playback.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_AUDIO_ATTRIBUTES()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onAudioAttributesChanged(androidx.media3.common.AudioAttributes)` |   |

### getAudioDecoderCounters

```
public @Nullable DecoderCounters [getAudioDecoderCounters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getAudioDecoderCounters())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns `https://developer.android.com/reference/androidx/media3/exoplayer/DecoderCounters` for audio, or null if no audio is being played.

### getAudioFormat

```
public @Nullable Format [getAudioFormat](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getAudioFormat())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the audio format currently being played, or null if no audio is being played.

### getAudioSessionId

```
public int [getAudioSessionId](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getAudioSessionId())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the audio session identifier, or `https://developer.android.com/reference/androidx/media3/common/C#AUDIO_SESSION_ID_UNSET()` if not set.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onAudioSessionIdChanged(int)` |   |

### getAvailableCommands

```
public Player.Commands [getAvailableCommands](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getAvailableCommands())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the player's currently available `https://developer.android.com/reference/androidx/media3/common/Player.Commands`.

The returned `https://developer.android.com/reference/androidx/media3/common/Player.Commands` are not updated when available commands change. Use `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onAvailableCommandsChanged(androidx.media3.common.Player.Commands)` to get an update when the available commands change.

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Commands` | The currently available `https://developer.android.com/reference/androidx/media3/common/Player.Commands`. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onAvailableCommandsChanged(androidx.media3.common.Player.Commands)` |   |

### getBufferedPosition

```
public long [getBufferedPosition](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getBufferedPosition())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns an estimate of the position in the current content or ad up to which data is buffered, in milliseconds.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_CURRENT_MEDIA_ITEM()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

### getClock

```
public Clock [getClock](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getClock())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the `https://developer.android.com/reference/androidx/media3/common/util/Clock` used for playback.

This method can be called from any thread.

### getContentBufferedPosition

```
public long [getContentBufferedPosition](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getContentBufferedPosition())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

If `https://developer.android.com/reference/androidx/media3/common/Player#isPlayingAd()` returns `true`, returns an estimate of the content position in the current content up to which data is buffered, in milliseconds. If there is no ad playing, the returned position is the same as that returned by `https://developer.android.com/reference/androidx/media3/common/Player#getBufferedPosition()`.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_CURRENT_MEDIA_ITEM()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

### getContentPosition

```
public long [getContentPosition](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getContentPosition())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

If `https://developer.android.com/reference/androidx/media3/common/Player#isPlayingAd()` returns `true`, returns the content position that will be played once all ads in the ad group have finished playing, in milliseconds. If there is no ad playing, the returned position is the same as that returned by `https://developer.android.com/reference/androidx/media3/common/Player#getCurrentPosition()`.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_CURRENT_MEDIA_ITEM()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

### getCurrentAdGroupIndex

```
public int [getCurrentAdGroupIndex](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentAdGroupIndex())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

If `https://developer.android.com/reference/androidx/media3/common/Player#isPlayingAd()` returns true, returns the index of the ad group in the period currently being played. Returns `https://developer.android.com/reference/androidx/media3/common/C#INDEX_UNSET()` otherwise.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_CURRENT_MEDIA_ITEM()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

### getCurrentAdIndexInAdGroup

```
public int [getCurrentAdIndexInAdGroup](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentAdIndexInAdGroup())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

If `https://developer.android.com/reference/androidx/media3/common/Player#isPlayingAd()` returns true, returns the index of the ad in its ad group. Returns `https://developer.android.com/reference/androidx/media3/common/C#INDEX_UNSET()` otherwise.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_CURRENT_MEDIA_ITEM()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

### getCurrentCues

```
public CueGroup [getCurrentCues](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentCues())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the current `https://developer.android.com/reference/androidx/media3/common/text/CueGroup`.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_TEXT()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onCues(androidx.media3.common.text.CueGroup)` |   |

### getCurrentMediaItemIndex

```
public int [getCurrentMediaItemIndex](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentMediaItemIndex())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the index of the current `https://developer.android.com/reference/androidx/media3/common/MediaItem` in the `https://developer.android.com/reference/androidx/media3/common/Player#getCurrentTimeline()`, or the prospective index if the `https://developer.android.com/reference/androidx/media3/common/Player#getCurrentTimeline()` is empty.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_TIMELINE()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

### getCurrentPeriodIndex

```
public int [getCurrentPeriodIndex](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentPeriodIndex())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the index of the period currently being played.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_TIMELINE()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

### getCurrentPosition

```
public long [getCurrentPosition](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentPosition())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the playback position in the current content or ad, in milliseconds, or the prospective position in milliseconds if the `https://developer.android.com/reference/androidx/media3/common/Player#getCurrentTimeline()` is empty.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_CURRENT_MEDIA_ITEM()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

### getCurrentTimeline

```
public Timeline [getCurrentTimeline](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentTimeline())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the current `https://developer.android.com/reference/androidx/media3/common/Timeline`. Never null, but may be empty.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_TIMELINE()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onTimelineChanged(androidx.media3.common.Timeline,int)` |   |

### getCurrentTrackGroups

```
public TrackGroupArray [getCurrentTrackGroups](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentTrackGroups())()
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentTracks()`.

### getCurrentTrackSelections

```
public TrackSelectionArray [getCurrentTrackSelections](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentTrackSelections())()
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentTracks()`.

### getCurrentTracks

```
public Tracks [getCurrentTracks](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getCurrentTracks())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the current tracks.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_TRACKS()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onTracksChanged(androidx.media3.common.Tracks)` |   |

### getDeviceInfo

```
public DeviceInfo [getDeviceInfo](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getDeviceInfo())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Gets the device information.

### getDeviceVolume

```
public int [getDeviceVolume](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getDeviceVolume())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Gets the current volume of the device.

For devices with `https://developer.android.com/reference/androidx/media3/common/DeviceInfo#PLAYBACK_TYPE_LOCAL()`, the volume returned by this method varies according to the current `https://developer.android.com/reference/androidx/media3/common/C.StreamType`. The stream type is determined by `https://developer.android.com/reference/androidx/media3/common/AudioAttributes#getStreamType()`.

For devices with `https://developer.android.com/reference/androidx/media3/common/DeviceInfo#PLAYBACK_TYPE_REMOTE()`, the volume of the remote device is returned.

Note that this method returns the volume of the device. To check the current stream volume, use `https://developer.android.com/reference/androidx/media3/common/Player#getVolume()`.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_DEVICE_VOLUME()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onDeviceVolumeChanged(int,boolean)` |   |

### getDuration

```
public long [getDuration](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getDuration())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the duration of the current content or ad in milliseconds, or `https://developer.android.com/reference/androidx/media3/common/C#TIME_UNSET()` if the duration is not known.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_CURRENT_MEDIA_ITEM()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

### getMaxSeekToPreviousPosition

```
public long [getMaxSeekToPreviousPosition](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getMaxSeekToPreviousPosition())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the maximum position for which `https://developer.android.com/reference/androidx/media3/common/Player#seekToPrevious()` seeks to the previous `https://developer.android.com/reference/androidx/media3/common/MediaItem`, in milliseconds.

| Returns |
|---|---|
| `long` | The maximum seek to previous position, in milliseconds. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onMaxSeekToPreviousPositionChanged(long)` |   |

### getMediaMetadata

```
public MediaMetadata [getMediaMetadata](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getMediaMetadata())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the current combined `https://developer.android.com/reference/androidx/media3/common/MediaMetadata`, or `https://developer.android.com/reference/androidx/media3/common/MediaMetadata#EMPTY()` if not supported.

This `https://developer.android.com/reference/androidx/media3/common/MediaMetadata` is a combination of the `https://developer.android.com/reference/androidx/media3/common/MediaItem#mediaMetadata()`, the static metadata in the media's `https://developer.android.com/reference/androidx/media3/common/Format#metadata()`, and any timed metadata that has been parsed from the media and output via `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onMetadata(androidx.media3.common.Metadata)`. If a field is populated in the `https://developer.android.com/reference/androidx/media3/common/MediaItem#mediaMetadata()`, it will be prioritised above the same field coming from static or timed metadata.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_METADATA()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onMediaMetadataChanged(androidx.media3.common.MediaMetadata)` |   |

### getPauseAtEndOfMediaItems

```
public boolean [getPauseAtEndOfMediaItems](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getPauseAtEndOfMediaItems())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns whether the player pauses playback at the end of each media item.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#setPauseAtEndOfMediaItems(boolean)` |   |

### getPlayWhenReady

```
public boolean [getPlayWhenReady](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getPlayWhenReady())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Whether playback will proceed when `https://developer.android.com/reference/androidx/media3/common/Player#getPlaybackState()` == `https://developer.android.com/reference/androidx/media3/common/Player#STATE_READY()`.

| Returns |
|---|---|
| `boolean` | Whether playback will proceed when ready. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onPlayWhenReadyChanged(boolean,int)` |   |

### getPlaybackLooper

```
public Looper [getPlaybackLooper](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getPlaybackLooper())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the `https://developer.android.com/reference/android/os/Looper.html` associated with the playback thread.

This method may be called from any thread.

### getPlaybackParameters

```
public PlaybackParameters [getPlaybackParameters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getPlaybackParameters())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the currently active playback parameters.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onPlaybackParametersChanged(androidx.media3.common.PlaybackParameters)` |   |

### getPlaybackState

```
@Player.State
public int [getPlaybackState](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getPlaybackState())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the current `https://developer.android.com/reference/androidx/media3/common/Player.State` of the player.

| Returns |
|---|---|
| `int` | The current `https://developer.android.com/reference/androidx/media3/common/Player.State`. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onPlaybackStateChanged(int)` |   |

### getPlaybackSuppressionReason

```
@Player.PlaybackSuppressionReason
public int [getPlaybackSuppressionReason](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getPlaybackSuppressionReason())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the reason why playback is suppressed even though `https://developer.android.com/reference/androidx/media3/common/Player#getPlayWhenReady()` is `
true`, or `https://developer.android.com/reference/androidx/media3/common/Player#PLAYBACK_SUPPRESSION_REASON_NONE()` if playback is not suppressed.

| Returns |
|---|---|
| `int` | The current `https://developer.android.com/reference/androidx/media3/common/Player.PlaybackSuppressionReason`. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onPlaybackSuppressionReasonChanged(int)` |   |

### getPlayerError

```
public @Nullable ExoPlaybackException [getPlayerError](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getPlayerError())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the error that caused playback to fail. This is the same error that will have been reported via `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onPlayerError(androidx.media3.common.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 `https://developer.android.com/reference/androidx/media3/common/Player#getPlaybackState()` is not `https://developer.android.com/reference/androidx/media3/common/Player#STATE_IDLE()`.

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlaybackException` | The error, or `null`. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onPlayerError(androidx.media3.common.PlaybackException)` |   |

### getPlaylistMetadata

```
public MediaMetadata [getPlaylistMetadata](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getPlaylistMetadata())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the playlist `https://developer.android.com/reference/androidx/media3/common/MediaMetadata`, as set by `https://developer.android.com/reference/androidx/media3/common/Player#setPlaylistMetadata(androidx.media3.common.MediaMetadata)`, or `https://developer.android.com/reference/androidx/media3/common/MediaMetadata#EMPTY()` if not supported.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_METADATA()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onPlaylistMetadataChanged(androidx.media3.common.MediaMetadata)` |   |

### getPreloadConfiguration

```
public ExoPlayer.PreloadConfiguration [getPreloadConfiguration](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getPreloadConfiguration())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.PreloadConfiguration`.

### getRenderer

```
public Renderer [getRenderer](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getRenderer(int))(int index)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the renderer at the given index.

| Parameters |
|---|---|
| `int index` | The index of the renderer. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` | The renderer at this index. |

### getRendererCount

```
public int [getRendererCount](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getRendererCount())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the number of renderers.

### getRendererType

```
@C.TrackType
public int [getRendererType](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getRendererType(int))(int index)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the track type that the renderer at a given index handles.

For example, a video renderer will return `https://developer.android.com/reference/androidx/media3/common/C#TRACK_TYPE_VIDEO()`, an audio renderer will return `https://developer.android.com/reference/androidx/media3/common/C#TRACK_TYPE_AUDIO()` and a text renderer will return `https://developer.android.com/reference/androidx/media3/common/C#TRACK_TYPE_TEXT()`.

| Parameters |
|---|---|
| `int index` | The index of the renderer. |

| Returns |
|---|---|
| `int` | The `https://developer.android.com/reference/androidx/media3/common/C.TrackType` that the renderer handles. |

### getRepeatMode

```
@Player.RepeatMode
public int [getRepeatMode](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getRepeatMode())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the current `https://developer.android.com/reference/androidx/media3/common/Player.RepeatMode` used for playback.

| Returns |
|---|---|
| `int` | The current repeat mode. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onRepeatModeChanged(int)` |   |

### getScrubbingModeParameters

```
public ScrubbingModeParameters [getScrubbingModeParameters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getScrubbingModeParameters())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Gets the parameters that control behavior in `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#setScrubbingModeEnabled(boolean)`.

### getSecondaryRenderer

```
public @Nullable Renderer [getSecondaryRenderer](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getSecondaryRenderer(int))(int index)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the secondary renderer at the given index.

| Parameters |
|---|---|
| `int index` | The index of the secondary renderer. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` | The secondary renderer at this index, or null if there is no secondary renderer at this index. |

### getSeekBackIncrement

```
public long [getSeekBackIncrement](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getSeekBackIncrement())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the `https://developer.android.com/reference/androidx/media3/common/Player#seekBack()` increment.

| Returns |
|---|---|
| `long` | The seek back increment, in milliseconds. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onSeekBackIncrementChanged(long)` |   |

### getSeekForwardIncrement

```
public long [getSeekForwardIncrement](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getSeekForwardIncrement())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the `https://developer.android.com/reference/androidx/media3/common/Player#seekForward()` increment.

| Returns |
|---|---|
| `long` | The seek forward increment, in milliseconds. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onSeekForwardIncrementChanged(long)` |   |

### getSeekParameters

```
public SeekParameters [getSeekParameters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getSeekParameters())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the currently active `https://developer.android.com/reference/androidx/media3/exoplayer/SeekParameters` of the player.

### getShuffleModeEnabled

```
public boolean [getShuffleModeEnabled](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getShuffleModeEnabled())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns whether shuffling of media items is enabled.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onShuffleModeEnabledChanged(boolean)` |   |

### getShuffleOrder

```
public ShuffleOrder [getShuffleOrder](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getShuffleOrder())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the shuffle order.

The `https://developer.android.com/reference/androidx/media3/exoplayer/source/ShuffleOrder` returned will have the same length as the current playlist (`https://developer.android.com/reference/androidx/media3/common/Player#getMediaItemCount()`).

### getSkipSilenceEnabled

```
public boolean [getSkipSilenceEnabled](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getSkipSilenceEnabled())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns whether skipping silences in the audio stream is enabled.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onSkipSilenceEnabledChanged(boolean)` |   |

### getSurfaceSize

```
public Size [getSurfaceSize](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getSurfaceSize())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Gets the size of the surface on which the video is rendered.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onSurfaceSizeChanged(int,int)` |   |

### getTotalBufferedDuration

```
public long [getTotalBufferedDuration](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getTotalBufferedDuration())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns an estimate of the total buffered duration from the current position, in milliseconds. This includes pre-buffered data for subsequent ads and `https://developer.android.com/reference/androidx/media3/common/MediaItem`.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_CURRENT_MEDIA_ITEM()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

### getTrackSelectionParameters

```
public TrackSelectionParameters [getTrackSelectionParameters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getTrackSelectionParameters())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the parameters constraining the track selection.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onTrackSelectionParametersChanged(androidx.media3.common.TrackSelectionParameters)` | } |

### getTrackSelector

```
public TrackSelector [getTrackSelector](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getTrackSelector())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the track selector that this player uses, or null if track selection is not supported.

### getVideoChangeFrameRateStrategy

```
@C.VideoChangeFrameRateStrategy
public int [getVideoChangeFrameRateStrategy](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getVideoChangeFrameRateStrategy())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the `https://developer.android.com/reference/androidx/media3/common/C.VideoChangeFrameRateStrategy`.

### getVideoDecoderCounters

```
public @Nullable DecoderCounters [getVideoDecoderCounters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getVideoDecoderCounters())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns `https://developer.android.com/reference/androidx/media3/exoplayer/DecoderCounters` for video, or null if no video is being played.

### getVideoFormat

```
public @Nullable Format [getVideoFormat](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getVideoFormat())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the video format currently being played, or null if no video is being played.

### getVideoScalingMode

```
@C.VideoScalingMode
public int [getVideoScalingMode](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getVideoScalingMode())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the `https://developer.android.com/reference/androidx/media3/common/C.VideoScalingMode`.

### getVideoSize

```
public VideoSize [getVideoSize](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getVideoSize())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Gets the size of the video.

The video's width and height are `0` if there is `https://developer.android.com/reference/androidx/media3/common/Tracks#isTypeSupported(int)` or its size has not been determined yet.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onVideoSizeChanged(androidx.media3.common.VideoSize)` |   |

### getVolume

```
public float [getVolume](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#getVolume())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns the audio volume, with 0 being silence and 1 being unity gain (signal unchanged).

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_VOLUME()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Returns |
|---|---|
| `float` | The linear gain applied to all audio channels. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onVolumeChanged(float)` |   |

### increaseDeviceVolume

```
public void [increaseDeviceVolume](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#increaseDeviceVolume())()
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#increaseDeviceVolume(int)` instead.

### increaseDeviceVolume

```
public void [increaseDeviceVolume](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#increaseDeviceVolume(int))(@C.VolumeFlags int flags)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Increases the volume of the device.

The `https://developer.android.com/reference/androidx/media3/common/Player#getDeviceVolume()` device volume cannot be increased above `https://developer.android.com/reference/androidx/media3/common/DeviceInfo#maxVolume()`, if defined.

Note that this method affects the device volume. To change the volume of the current stream only, use `https://developer.android.com/reference/androidx/media3/common/Player#setVolume(float)`.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/media3/common/C.VolumeFlags int flags` | Either 0 or a bitwise combination of one or more `https://developer.android.com/reference/androidx/media3/common/C.VolumeFlags`. |

### isDeviceMuted

```
public boolean [isDeviceMuted](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#isDeviceMuted())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Gets whether the device is muted or not.

Note that this method returns the mute state of the device. To check if the current stream is muted, use `getVolume() == 0`.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_DEVICE_VOLUME()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onDeviceVolumeChanged(int,boolean)` |   |

### isLoading

```
public boolean [isLoading](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#isLoading())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Whether the player is currently loading the source.

| Returns |
|---|---|
| `boolean` | Whether the player is currently loading the source. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onIsLoadingChanged(boolean)` |   |

### isPlayingAd

```
public boolean [isPlayingAd](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#isPlayingAd())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns whether the player is currently playing an ad.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_GET_CURRENT_MEDIA_ITEM()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

### isReleased

```
public boolean [isReleased](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#isReleased())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns whether `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#release()` has been called on the player.

This method is allowed to be called after `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#release()`.

### isScrubbingModeEnabled

```
public boolean [isScrubbingModeEnabled](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#isScrubbingModeEnabled())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns whether the player is optimized for scrubbing (many frequent seeks).

See `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#setScrubbingModeEnabled(boolean)`.

### isSleepingForOffload

```
public boolean [isSleepingForOffload](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#isSleepingForOffload())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns whether the player has paused its main loop to save power in offload scheduling mode.

Offload scheduling mode should save significant power when the phone is playing offload audio with the screen off.

Offload scheduling is only enabled when playing an audio track in offload mode, which requires all the following:

- Audio offload rendering is enabled through `https://developer.android.com/reference/androidx/media3/common/TrackSelectionParameters.Builder#setAudioOffloadPreferences(androidx.media3.common.TrackSelectionParameters.AudioOffloadPreferences)`.
- An audio track is playing in a format that the device supports offloading (for example, MP3 or AAC).
- The `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioSink` is playing with an offload `https://developer.android.com/reference/android/media/AudioTrack.html`.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.AudioOffloadListener#onSleepingForOffloadChanged(boolean)` |   |

### isTunnelingEnabled

```
public boolean [isTunnelingEnabled](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#isTunnelingEnabled())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Returns whether [tunneling](https://source.android.com/devices/tv/multimedia-tunneling) is enabled for the currently selected tracks.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onTracksChanged(androidx.media3.common.Tracks)` |   |

### moveMediaItems

```
public void [moveMediaItems](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#moveMediaItems(int,int,int))(int fromIndex, int toIndex, int newIndex)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Moves the media item range to the new index.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_CHANGE_MEDIA_ITEMS()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `int fromIndex` | The start of the range to move. If the index is larger than the size of the playlist, the request is ignored. |
| `int toIndex` | The first item not to be included in the range (exclusive). If the index is larger than the size of the playlist, items up to the end of the playlist are moved. |
| `int newIndex` | The new index of the first media item of the range. If the new index is larger than the size of the remaining playlist after removing the range, the range is moved to the end of the playlist. |

### mute

```
public void [mute](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#mute())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the audio volume to 0.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_VOLUME()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

### prepare

```
public void [prepare](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#prepare())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Prepares the player.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_PREPARE()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

This will move the player out of `https://developer.android.com/reference/androidx/media3/common/Player#STATE_IDLE()` and the player will start loading media and acquire resources needed for playback.

### prepare

```
public void [prepare](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#prepare(androidx.media3.exoplayer.source.MediaSource))(MediaSource mediaSource)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMediaSource(androidx.media3.exoplayer.source.MediaSource)` and `https://developer.android.com/reference/androidx/media3/common/Player#prepare()` instead.

### prepare

```
public void [prepare](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#prepare(androidx.media3.exoplayer.source.MediaSource,boolean,boolean))(
    MediaSource mediaSource,
    boolean resetPosition,
    boolean resetState
)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMediaSource(androidx.media3.exoplayer.source.MediaSource,boolean)` and `https://developer.android.com/reference/androidx/media3/common/Player#prepare()` instead.

### release

```
public void [release](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#release())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Releases the player. This method must be called when the player is no longer required. The player must not be used after calling this method.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_RELEASE()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

### removeAnalyticsListener

```
public void [removeAnalyticsListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#removeAnalyticsListener(androidx.media3.exoplayer.analytics.AnalyticsListener))(AnalyticsListener listener)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Removes an `https://developer.android.com/reference/androidx/media3/exoplayer/analytics/AnalyticsListener`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/analytics/AnalyticsListener listener` | The listener to be removed. |

### removeAudioCodecParametersChangeListener

```
public void [removeAudioCodecParametersChangeListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#removeAudioCodecParametersChangeListener(androidx.media3.exoplayer.CodecParametersChangeListener))(
    CodecParametersChangeListener listener
)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Removes a listener for audio codec parameter changes.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/CodecParametersChangeListener listener` | The `https://developer.android.com/reference/androidx/media3/exoplayer/CodecParametersChangeListener` to remove. |

### removeAudioOffloadListener

```
public void [removeAudioOffloadListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#removeAudioOffloadListener(androidx.media3.exoplayer.ExoPlayer.AudioOffloadListener))(ExoPlayer.AudioOffloadListener listener)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Removes a listener of audio offload events.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.AudioOffloadListener listener` | The listener to unregister. |

### removeListener

```
public void [removeListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#removeListener(androidx.media3.common.Player.Listener))(Player.Listener listener)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Unregister a listener registered through `https://developer.android.com/reference/androidx/media3/common/Player#addListener(androidx.media3.common.Player.Listener)`. The listener will no longer receive events.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player.Listener listener` | The listener to unregister. |

### removeMediaItems

```
public void [removeMediaItems](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#removeMediaItems(int,int))(int fromIndex, int toIndex)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Removes a range of media items from the playlist.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_CHANGE_MEDIA_ITEMS()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `int fromIndex` | The index at which to start removing media items. If the index is larger than the size of the playlist, the request is ignored. |
| `int toIndex` | The index of the first item to be kept (exclusive). If the index is larger than the size of the playlist, media items up to the end of the playlist are removed. |

### removeVideoCodecParametersChangeListener

```
public void [removeVideoCodecParametersChangeListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#removeVideoCodecParametersChangeListener(androidx.media3.exoplayer.CodecParametersChangeListener))(
    CodecParametersChangeListener listener
)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Removes a listener for video codec parameter changes.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/CodecParametersChangeListener listener` | The `https://developer.android.com/reference/androidx/media3/exoplayer/CodecParametersChangeListener` to remove. |

### removeVideoFrameMetadataListener

```
public void [removeVideoFrameMetadataListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#removeVideoFrameMetadataListener(androidx.media3.exoplayer.video.VideoFrameMetadataListener))(VideoFrameMetadataListener listener)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Removes a listener to receive video frame metadata events.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoFrameMetadataListener listener` | The listener to remove. |

### replaceMediaItems

```
public void [replaceMediaItems](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#replaceMediaItems(int,int,java.util.List<androidx.media3.common.MediaItem>))(
    int fromIndex,
    int toIndex,
    List<MediaItem> mediaItems
)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Replaces the media items at the given range of the playlist.

Implementations of this method may attempt to seamlessly continue playback if the currently playing media item is replaced with a compatible one (e.g. same URL, only metadata has changed).

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_CHANGE_MEDIA_ITEMS()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

Note that it is possible to replace a range with an arbitrary number of new items, so that the number of removed items defined by `fromIndex` and `toIndex` does not have to match the number of added items defined by `mediaItems`. As result, it may also change the index of subsequent items not touched by this operation.

| Parameters |
|---|---|
| `int fromIndex` | The start of the range. If the index is larger than the size of the playlist, the request is ignored. |
| `int toIndex` | The first item not to be included in the range (exclusive). If the index is larger than the size of the playlist, items up to the end of the playlist are replaced. |
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/MediaItem> mediaItems` | The `https://developer.android.com/reference/androidx/media3/common/MediaItem` to replace the range with. |

### setAudioAttributes

```
public void [setAudioAttributes](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setAudioAttributes(androidx.media3.common.AudioAttributes,boolean))(
    AudioAttributes audioAttributes,
    boolean handleAudioFocus
)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

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 audio focus should be handled, the `https://developer.android.com/reference/androidx/media3/common/AudioAttributes#usage()` must be `https://developer.android.com/reference/androidx/media3/common/C#USAGE_MEDIA()` or `https://developer.android.com/reference/androidx/media3/common/C#USAGE_GAME()`. Other usages will throw an `https://developer.android.com/reference/java/lang/IllegalArgumentException.html`.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_AUDIO_ATTRIBUTES()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/AudioAttributes audioAttributes` | The attributes to use for audio playback. |
| `boolean handleAudioFocus` | True if the player should handle audio focus, false otherwise. |

### setAudioCodecParameters

```
public void [setAudioCodecParameters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setAudioCodecParameters(androidx.media3.exoplayer.CodecParameters))(CodecParameters codecParameters)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets a collection of parameters on the underlying audio codecs.

This method is asynchronous. The parameters will be applied to the audio renderers on the playback thread.

The default `https://developer.android.com/reference/android/media/MediaCodec.html` based renderers only support this feature on API level 29 and above. If an underlying decoder does not support a parameter, it will be ignored.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/CodecParameters codecParameters` | The `https://developer.android.com/reference/androidx/media3/exoplayer/CodecParameters` to set. |

### setAudioSessionId

```
public void [setAudioSessionId](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setAudioSessionId(int))(int audioSessionId)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the ID of the audio session to attach to the underlying `https://developer.android.com/reference/android/media/AudioTrack.html`.

The audio session ID can be generated using `https://developer.android.com/reference/androidx/media3/common/util/Util#generateAudioSessionId(android.content.Context)`.

| Parameters |
|---|---|
| `int audioSessionId` | The audio session ID, or `https://developer.android.com/reference/androidx/media3/common/C#AUDIO_SESSION_ID_UNSET()` if it should be generated by the framework. |

### setAuxEffectInfo

```
public void [setAuxEffectInfo](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setAuxEffectInfo(androidx.media3.common.AuxEffectInfo))(AuxEffectInfo auxEffectInfo)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets information on an auxiliary audio effect to attach to the underlying audio track.

### setCameraMotionListener

```
public void [setCameraMotionListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setCameraMotionListener(androidx.media3.exoplayer.video.spherical.CameraMotionListener))(CameraMotionListener listener)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets a listener of camera motion events.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/video/spherical/CameraMotionListener listener` | The listener. |

### setDeviceMuted

```
public void [setDeviceMuted](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setDeviceMuted(boolean))(boolean muted)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setDeviceMuted(boolean,int)` instead.

### setDeviceMuted

```
public void [setDeviceMuted](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setDeviceMuted(boolean,int))(boolean muted, @C.VolumeFlags int flags)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the mute state of the device.

Note that this method affects the device volume. To mute just the current stream, use `
setVolume(0)` instead.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `boolean muted` | Whether to set the device to be muted or not |
| `@https://developer.android.com/reference/androidx/media3/common/C.VolumeFlags int flags` | Either 0 or a bitwise combination of one or more `https://developer.android.com/reference/androidx/media3/common/C.VolumeFlags`. |

### setDeviceVolume

```
public void [setDeviceVolume](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setDeviceVolume(int))(int volume)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setDeviceVolume(int,int)` instead.

### setDeviceVolume

```
public void [setDeviceVolume](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setDeviceVolume(int,int))(int volume, @C.VolumeFlags int flags)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the volume of the device with volume flags.

Note that this method affects the device volume. To change the volume of the current stream only, use `https://developer.android.com/reference/androidx/media3/common/Player#setVolume(float)`.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `int volume` | The volume to set. |
| `@https://developer.android.com/reference/androidx/media3/common/C.VolumeFlags int flags` | Either 0 or a bitwise combination of one or more `https://developer.android.com/reference/androidx/media3/common/C.VolumeFlags`. |

### setEnforceAdPlaybackOnTimelineRefresh

```
public void [setEnforceAdPlaybackOnTimelineRefresh](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setEnforceAdPlaybackOnTimelineRefresh(boolean))(
    boolean enforceAdPlaybackOnTimelineRefresh
)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets whether to enforce ad playback on timeline refresh.

If `true`, then an ad group resolved at or before the current playback position during a timeline refresh will be played. If `false`, then the resolved ad group will not play.

The default is `true`.

| Parameters |
|---|---|
| `boolean enforceAdPlaybackOnTimelineRefresh` | Whether to enforce ad playback on timeline refresh. |

### setForegroundMode

```
public void [setForegroundMode](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setForegroundMode(boolean))(boolean foregroundMode)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

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. `https://developer.android.com/reference/androidx/media3/common/Player#stop()` is called to halt one playback, and `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#prepare(androidx.media3.exoplayer.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 `https://developer.android.com/reference/androidx/media3/common/Player#stop()` does not need to be called, and simply calling `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#prepare(androidx.media3.exoplayer.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.

| Parameters |
|---|---|
| `boolean foregroundMode` | Whether the player is allowed to keep limited resources even when in the idle state. |

### setHandleAudioBecomingNoisy

```
public void [setHandleAudioBecomingNoisy](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setHandleAudioBecomingNoisy(boolean))(boolean handleAudioBecomingNoisy)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets whether the player should pause automatically when audio is rerouted from a headset to device speakers. See the [audio becoming noisy](https://developer.android.com/guide/topics/media-apps/volume-and-earphones#becoming-noisy) documentation for more information.

| Parameters |
|---|---|
| `boolean handleAudioBecomingNoisy` | Whether the player should pause automatically when audio is rerouted from a headset to device speakers. |

### setImageOutput

```
public void [setImageOutput](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setImageOutput(androidx.media3.exoplayer.image.ImageOutput))(@Nullable ImageOutput imageOutput)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the `https://developer.android.com/reference/androidx/media3/exoplayer/image/ImageOutput` where rendered images will be forwarded.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/image/ImageOutput imageOutput` | The `https://developer.android.com/reference/androidx/media3/exoplayer/image/ImageOutput`. May be null to clear a previously set image output. |

### setMaxSeekToPreviousPositionMs

```
public void [setMaxSeekToPreviousPositionMs](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMaxSeekToPreviousPositionMs(long))(long maxSeekToPreviousPositionMs)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the maximum position for which `https://developer.android.com/reference/androidx/media3/common/Player#seekToPrevious()` seeks to the previous `https://developer.android.com/reference/androidx/media3/common/MediaItem`.

| Parameters |
|---|---|
| `long maxSeekToPreviousPositionMs` | The maximum position, in milliseconds. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | If `maxSeekToPreviousPositionMs` is negative. |

### setMediaItems

```
public void [setMediaItems](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMediaItems(java.util.List<androidx.media3.common.MediaItem>,boolean))(List<MediaItem> mediaItems, boolean resetPosition)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Clears the playlist and adds the specified `https://developer.android.com/reference/androidx/media3/common/MediaItem`.

To replace a span of media items (possibly seamlessly) without clearing the playlist, use `https://developer.android.com/reference/androidx/media3/common/Player#replaceMediaItems(int,int,java.util.List<androidx.media3.common.MediaItem>)`.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_CHANGE_MEDIA_ITEMS()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/MediaItem> mediaItems` | The new `https://developer.android.com/reference/androidx/media3/common/MediaItem`. |
| `boolean resetPosition` | Whether the playback position should be reset to the default position in the first `https://developer.android.com/reference/androidx/media3/common/Timeline.Window`. If false, playback will start from the position defined by `https://developer.android.com/reference/androidx/media3/common/Player#getCurrentMediaItemIndex()` and `https://developer.android.com/reference/androidx/media3/common/Player#getCurrentPosition()`. |

### setMediaItems

```
public void [setMediaItems](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMediaItems(java.util.List<androidx.media3.common.MediaItem>,int,long))(
    List<MediaItem> mediaItems,
    int startIndex,
    long startPositionMs
)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Clears the playlist and adds the specified `https://developer.android.com/reference/androidx/media3/common/MediaItem`.

To replace a span of media items (possibly seamlessly) without clearing the playlist, use `https://developer.android.com/reference/androidx/media3/common/Player#replaceMediaItems(int,int,java.util.List<androidx.media3.common.MediaItem>)`.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_CHANGE_MEDIA_ITEMS()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/MediaItem> mediaItems` | The new `https://developer.android.com/reference/androidx/media3/common/MediaItem`. |
| `int startIndex` | The `https://developer.android.com/reference/androidx/media3/common/MediaItem` index to start playback from. If `https://developer.android.com/reference/androidx/media3/common/C#INDEX_UNSET()` is passed, the current position is not reset. |
| `long startPositionMs` | The position in milliseconds to start playback from. If `https://developer.android.com/reference/androidx/media3/common/C#TIME_UNSET()` is passed, the default position of the given `https://developer.android.com/reference/androidx/media3/common/MediaItem` is used. In any case, if `startIndex` is set to `https://developer.android.com/reference/androidx/media3/common/C#INDEX_UNSET()`, this parameter is ignored and the position is not reset at all. |

| Throws |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/IllegalSeekPositionException` | If the provided `startIndex` is not within the bounds of the list of media items. |

### setMediaSource

```
public void [setMediaSource](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMediaSource(androidx.media3.exoplayer.source.MediaSource))(MediaSource mediaSource)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Clears the playlist, adds the specified `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource` and resets the position to the default position.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource mediaSource` | The new `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource`. |

### setMediaSource

```
public void [setMediaSource](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMediaSource(androidx.media3.exoplayer.source.MediaSource,boolean))(MediaSource mediaSource, boolean resetPosition)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Clears the playlist and adds the specified `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource mediaSource` | The new `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource`. |
| `boolean resetPosition` | Whether the playback position should be reset to the default position. If false, playback will start from the position defined by `https://developer.android.com/reference/androidx/media3/common/Player#getCurrentMediaItemIndex()` and `https://developer.android.com/reference/androidx/media3/common/Player#getCurrentPosition()`. |

### setMediaSource

```
public void [setMediaSource](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMediaSource(androidx.media3.exoplayer.source.MediaSource,long))(MediaSource mediaSource, long startPositionMs)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Clears the playlist and adds the specified `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource mediaSource` | The new `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource`. |
| `long startPositionMs` | The position in milliseconds to start playback from. If `https://developer.android.com/reference/androidx/media3/common/C#TIME_UNSET()` is passed, the default position of the given media source is used. |

### setMediaSources

```
public void [setMediaSources](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMediaSources(java.util.List<androidx.media3.exoplayer.source.MediaSource>))(List<MediaSource> mediaSources)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Clears the playlist, adds the specified `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource` and resets the position to the default position.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource> mediaSources` | The new `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource`. |

### setMediaSources

```
public void [setMediaSources](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMediaSources(java.util.List<androidx.media3.exoplayer.source.MediaSource>,boolean))(List<MediaSource> mediaSources, boolean resetPosition)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Clears the playlist and adds the specified `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource> mediaSources` | The new `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource`. |
| `boolean resetPosition` | Whether the playback position should be reset to the default position in the first `https://developer.android.com/reference/androidx/media3/common/Timeline.Window`. If false, playback will start from the position defined by `https://developer.android.com/reference/androidx/media3/common/Player#getCurrentMediaItemIndex()` and `https://developer.android.com/reference/androidx/media3/common/Player#getCurrentPosition()`. |

### setMediaSources

```
public void [setMediaSources](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setMediaSources(java.util.List<androidx.media3.exoplayer.source.MediaSource>,int,long))(
    List<MediaSource> mediaSources,
    int startMediaItemIndex,
    long startPositionMs
)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Clears the playlist and adds the specified `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource> mediaSources` | The new `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource`. |
| `int startMediaItemIndex` | The media item index to start playback from. If `https://developer.android.com/reference/androidx/media3/common/C#INDEX_UNSET()` is passed, the current position is not reset. |
| `long startPositionMs` | The position in milliseconds to start playback from. If `https://developer.android.com/reference/androidx/media3/common/C#TIME_UNSET()` is passed, the default position of the given media source is used. In any case, if `startMediaItemIndex` is set to `https://developer.android.com/reference/androidx/media3/common/C#INDEX_UNSET()`, this parameter is ignored and the position is not reset at all. |

### setPauseAtEndOfMediaItems

```
public void [setPauseAtEndOfMediaItems](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setPauseAtEndOfMediaItems(boolean))(boolean pauseAtEndOfMediaItems)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

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 `https://developer.android.com/reference/androidx/media3/common/Player#getCurrentTimeline()`. Listeners will be informed by a call to `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onPlayWhenReadyChanged(boolean,int)` with the reason `https://developer.android.com/reference/androidx/media3/common/Player#PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM()` when this happens.

| Parameters |
|---|---|
| `boolean pauseAtEndOfMediaItems` | Whether to pause playback at the end of each media item. |

### setPlayWhenReady

```
public void [setPlayWhenReady](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setPlayWhenReady(boolean))(boolean playWhenReady)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets whether playback should proceed when `https://developer.android.com/reference/androidx/media3/common/Player#getPlaybackState()` == `https://developer.android.com/reference/androidx/media3/common/Player#STATE_READY()`.

If the player is already in the ready state then this method pauses and resumes playback.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_PLAY_PAUSE()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `boolean playWhenReady` | Whether playback should proceed when ready. |

### setPlaybackParameters

```
public void [setPlaybackParameters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setPlaybackParameters(androidx.media3.common.PlaybackParameters))(PlaybackParameters playbackParameters)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Attempts to set the playback parameters. Passing `https://developer.android.com/reference/androidx/media3/common/PlaybackParameters#DEFAULT()` resets the player to the default, which means there is no speed or pitch adjustment.

Playback parameters changes may cause the player to buffer. `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onPlaybackParametersChanged(androidx.media3.common.PlaybackParameters)` will be called whenever the currently active playback parameters change.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_SPEED_AND_PITCH()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/PlaybackParameters playbackParameters` | The playback parameters. |

### setPlaylistMetadata

```
public void [setPlaylistMetadata](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setPlaylistMetadata(androidx.media3.common.MediaMetadata))(MediaMetadata mediaMetadata)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the playlist `https://developer.android.com/reference/androidx/media3/common/MediaMetadata`.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_PLAYLIST_METADATA()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

### setPreferredAudioDevice

```
public void [setPreferredAudioDevice](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setPreferredAudioDevice(android.media.AudioDeviceInfo))(@Nullable AudioDeviceInfo audioDeviceInfo)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the preferred audio device.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/media/AudioDeviceInfo.html audioDeviceInfo` | The preferred `https://developer.android.com/reference/android/media/AudioDeviceInfo.html`, or null to restore the default. |

### setPreloadConfiguration

```
public void [setPreloadConfiguration](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setPreloadConfiguration(androidx.media3.exoplayer.ExoPlayer.PreloadConfiguration))(
    ExoPlayer.PreloadConfiguration preloadConfiguration
)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.PreloadConfiguration` to configure playlist preloading.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.PreloadConfiguration preloadConfiguration` | The preload configuration. |

### setPriority

```
public void [setPriority](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setPriority(int))(@C.Priority int priority)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the `https://developer.android.com/reference/androidx/media3/common/C.Priority` for this player.

The priority may influence resource allocation between multiple players or other components running in the same app.

This priority is used for the `https://developer.android.com/reference/androidx/media3/common/PriorityTaskManager`, if `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#setPriorityTaskManager(androidx.media3.common.PriorityTaskManager)`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/media3/common/C.Priority int priority` | The `https://developer.android.com/reference/androidx/media3/common/C.Priority`. |

### setPriorityTaskManager

```
public void [setPriorityTaskManager](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setPriorityTaskManager(androidx.media3.common.PriorityTaskManager))(
    @Nullable PriorityTaskManager priorityTaskManager
)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets a `https://developer.android.com/reference/androidx/media3/common/PriorityTaskManager`, or null to clear a previously set priority task manager.

The priority set via `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#setPriority(int)` (or `https://developer.android.com/reference/androidx/media3/common/C#PRIORITY_PLAYBACK()` will be set while the player is loading.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/PriorityTaskManager priorityTaskManager` | The `https://developer.android.com/reference/androidx/media3/common/PriorityTaskManager`, or null to clear a previously set priority task manager. |

### setRepeatMode

```
public void [setRepeatMode](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setRepeatMode(int))(@Player.RepeatMode int repeatMode)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the `https://developer.android.com/reference/androidx/media3/common/Player.RepeatMode` to be used for playback.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_REPEAT_MODE()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/media3/common/Player.RepeatMode int repeatMode` | The repeat mode. |

### setScrubbingModeEnabled

```
public void [setScrubbingModeEnabled](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setScrubbingModeEnabled(boolean))(boolean scrubbingModeEnabled)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets whether to optimize the player for scrubbing (many frequent seeks).

The player may consume more resources in this mode, so it should only be used for short periods of time in response to user interaction (e.g. dragging on a progress bar UI element).

During scrubbing mode playback is `https://developer.android.com/reference/androidx/media3/common/Player#getPlaybackSuppressionReason()` with `https://developer.android.com/reference/androidx/media3/common/Player#PLAYBACK_SUPPRESSION_REASON_SCRUBBING()`.

| Parameters |
|---|---|
| `boolean scrubbingModeEnabled` | Whether scrubbing mode should be enabled. |

### setScrubbingModeParameters

```
public void [setScrubbingModeParameters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setScrubbingModeParameters(androidx.media3.exoplayer.ScrubbingModeParameters))(
    ScrubbingModeParameters scrubbingModeParameters
)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the parameters that control behavior in `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#setScrubbingModeEnabled(boolean)`.

### setSeekBackIncrementMs

```
public void [setSeekBackIncrementMs](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setSeekBackIncrementMs(long))(long seekBackIncrementMs)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the `https://developer.android.com/reference/androidx/media3/common/Player#seekBack()` increment.

| Parameters |
|---|---|
| `long seekBackIncrementMs` | The seek back increment, in milliseconds. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | If `seekBackIncrementMs` is non-positive. |

### setSeekForwardIncrementMs

```
public void [setSeekForwardIncrementMs](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setSeekForwardIncrementMs(long))(long seekForwardIncrementMs)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the `https://developer.android.com/reference/androidx/media3/common/Player#seekForward()` increment.

| Parameters |
|---|---|
| `long seekForwardIncrementMs` | The seek forward increment, in milliseconds. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | If `seekForwardIncrementMs` is non-positive. |

### setSeekParameters

```
public void [setSeekParameters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setSeekParameters(androidx.media3.exoplayer.SeekParameters))(@Nullable SeekParameters seekParameters)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the parameters that control how seek operations are performed.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/SeekParameters seekParameters` | The seek parameters, or `null` to use the defaults. |

### setShuffleModeEnabled

```
public void [setShuffleModeEnabled](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setShuffleModeEnabled(boolean))(boolean shuffleModeEnabled)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets whether shuffling of media items is enabled.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_SHUFFLE_MODE()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `boolean shuffleModeEnabled` | Whether shuffling is enabled. |

### setShuffleOrder

```
public void [setShuffleOrder](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setShuffleOrder(androidx.media3.exoplayer.source.ShuffleOrder))(ShuffleOrder shuffleOrder)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the shuffle order.

The `https://developer.android.com/reference/androidx/media3/exoplayer/source/ShuffleOrder` passed must have the same length as the current playlist (`https://developer.android.com/reference/androidx/media3/common/Player#getMediaItemCount()`).

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/source/ShuffleOrder shuffleOrder` | The shuffle order. |

### setSkipSilenceEnabled

```
public void [setSkipSilenceEnabled](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setSkipSilenceEnabled(boolean))(boolean skipSilenceEnabled)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets whether skipping silences in the audio stream is enabled.

| Parameters |
|---|---|
| `boolean skipSilenceEnabled` | Whether skipping silences in the audio stream is enabled. |

### setTrackSelectionParameters

```
public void [setTrackSelectionParameters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setTrackSelectionParameters(androidx.media3.common.TrackSelectionParameters))(TrackSelectionParameters parameters)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the parameters constraining the track selection.

Unsupported parameters will be silently ignored.

Use `https://developer.android.com/reference/androidx/media3/common/Player#getTrackSelectionParameters()` to retrieve the current parameters. For example, the following snippet restricts video to SD whilst keep other track selection parameters unchanged:

```
player.setTrackSelectionParameters(
  player.getTrackSelectionParameters()
        .buildUpon()
        .setMaxVideoSizeSd()
        .build())
```

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_TRACK_SELECTION_PARAMETERS()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

### setVideoChangeFrameRateStrategy

```
public void [setVideoChangeFrameRateStrategy](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVideoChangeFrameRateStrategy(int))(
    @C.VideoChangeFrameRateStrategy int videoChangeFrameRateStrategy
)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets a `https://developer.android.com/reference/androidx/media3/common/C.VideoChangeFrameRateStrategy` that will be used by the player when provided with a video output `https://developer.android.com/reference/android/view/Surface.html`.

The strategy only applies if a `https://developer.android.com/reference/android/media/MediaCodec.html`-based video `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` is enabled. Applications wishing to use `https://developer.android.com/reference/android/view/Surface.html#CHANGE_FRAME_RATE_ALWAYS` should set the mode to `https://developer.android.com/reference/androidx/media3/common/C#VIDEO_CHANGE_FRAME_RATE_STRATEGY_OFF()` to disable calls to `https://developer.android.com/reference/android/view/Surface.html#setFrameRate(float, int)` from ExoPlayer, and should then call `https://developer.android.com/reference/android/view/Surface.html#setFrameRate(float, int)` directly from application code.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/media3/common/C.VideoChangeFrameRateStrategy int videoChangeFrameRateStrategy` | A `https://developer.android.com/reference/androidx/media3/common/C.VideoChangeFrameRateStrategy`. |

### setVideoCodecParameters

```
public void [setVideoCodecParameters](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVideoCodecParameters(androidx.media3.exoplayer.CodecParameters))(CodecParameters codecParameters)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets a collection of parameters on the underlying video codecs.

This method is asynchronous. The parameters will be applied to the video renderers on the playback thread.

The default `https://developer.android.com/reference/android/media/MediaCodec.html` based renderers only support this feature on API level 29 and above. If an underlying decoder does not support a parameter, it will be ignored.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/CodecParameters codecParameters` | The `https://developer.android.com/reference/androidx/media3/exoplayer/CodecParameters` to set. |

### setVideoEffects

```
public void [setVideoEffects](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVideoEffects(java.util.List<androidx.media3.common.Effect>))(List<Effect> videoEffects)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets a `https://developer.android.com/reference/java/util/List.html` of `https://developer.android.com/reference/androidx/media3/common/Effect` that will be applied to each video frame.

If `https://developer.android.com/reference/androidx/media3/common/Player#setVideoSurface(android.view.Surface)`, the output resolution needs to be signaled by passing a `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#createMessage(androidx.media3.exoplayer.PlayerMessage.Target)` to the `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` with type `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_VIDEO_OUTPUT_RESOLUTION()` after calling this method. For `https://developer.android.com/reference/android/view/SurfaceView.html`, `https://developer.android.com/reference/android/view/TextureView.html` and `https://developer.android.com/reference/android/view/SurfaceHolder.html` output this happens automatically.

Pass `https://developer.android.com/reference/androidx/media3/common/VideoFrameProcessor#REDRAW()` to force the effect pipeline to redraw the effects immediately. To accurately interleave redraws, listen to `https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoFrameMetadataListener#onVideoFrameAboutToBeRendered(long,long,androidx.media3.common.Format,android.media.MediaFormat)` events.

The following limitations exist for using `https://developer.android.com/reference/androidx/media3/common/Effect`:

- The `androidx.media3:media3-effect` module must be available on the runtime classpath. `androidx.media3:media3-exoplayer` does not explicitly depend on the effect module, so apps must make sure it's available themselves. It must be the same version as the rest of the `androidx.media3` modules being used by the app.
- This feature works only with the default `https://developer.android.com/reference/androidx/media3/exoplayer/video/MediaCodecVideoRenderer` and not custom or extension `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer`.
- This feature does not work with `https://developer.android.com/reference/androidx/media3/common/Effect` that update the frame timestamps.
- This feature does not work with DRM-protected content.
- This method must be called at least once before calling `https://developer.android.com/reference/androidx/media3/common/Player#prepare()` (in order to set up the effects pipeline). The effects can be changed during playback by subsequent calls to this method after `https://developer.android.com/reference/androidx/media3/common/Player#prepare()`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/Effect> videoEffects` | The `https://developer.android.com/reference/java/util/List.html` of `https://developer.android.com/reference/androidx/media3/common/Effect` to apply. |

### setVideoFrameMetadataListener

```
public void [setVideoFrameMetadataListener](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVideoFrameMetadataListener(androidx.media3.exoplayer.video.VideoFrameMetadataListener))(VideoFrameMetadataListener listener)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#addVideoFrameMetadataListener(androidx.media3.exoplayer.video.VideoFrameMetadataListener)` and `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#removeVideoFrameMetadataListener(androidx.media3.exoplayer.video.VideoFrameMetadataListener)` instead.

Sets a listener to receive video frame metadata events.

Calling this method is equivalent to calling `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#removeVideoFrameMetadataListener(androidx.media3.exoplayer.video.VideoFrameMetadataListener)` for the listener previously set with this method (if any), and then calling `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#addVideoFrameMetadataListener(androidx.media3.exoplayer.video.VideoFrameMetadataListener)` with `listener` (if non-null).

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoFrameMetadataListener listener` | The listener. |

### setVideoScalingMode

```
public void [setVideoScalingMode](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVideoScalingMode(int))(@C.VideoScalingMode int videoScalingMode)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the `https://developer.android.com/reference/androidx/media3/common/C.VideoScalingMode`.

The scaling mode only applies if a `https://developer.android.com/reference/android/media/MediaCodec.html`-based video `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` is enabled and if the output surface is owned by a `https://developer.android.com/reference/android/view/SurfaceView.html`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/media3/common/C.VideoScalingMode int videoScalingMode` | The `https://developer.android.com/reference/androidx/media3/common/C.VideoScalingMode`. |

### setVideoSurface

```
public void [setVideoSurface](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVideoSurface(android.view.Surface))(@Nullable Surface surface)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the `https://developer.android.com/reference/android/view/Surface.html` onto which video will be rendered. The caller is responsible for tracking the lifecycle of the surface, and must clear the surface by calling `
setVideoSurface(null)` if the surface is destroyed.

If the surface is held by a `https://developer.android.com/reference/android/view/SurfaceView.html`, `https://developer.android.com/reference/android/view/TextureView.html` or `https://developer.android.com/reference/android/view/SurfaceHolder.html` then it's recommended to use `https://developer.android.com/reference/androidx/media3/common/Player#setVideoSurfaceView(android.view.SurfaceView)`, `https://developer.android.com/reference/androidx/media3/common/Player#setVideoTextureView(android.view.TextureView)` or `https://developer.android.com/reference/androidx/media3/common/Player#setVideoSurfaceHolder(android.view.SurfaceHolder)` rather than this method, since passing the holder allows the player to track the lifecycle of the surface automatically.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_VIDEO_SURFACE()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/view/Surface.html surface` | The `https://developer.android.com/reference/android/view/Surface.html`. |

### setVideoSurfaceHolder

```
public void [setVideoSurfaceHolder](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVideoSurfaceHolder(android.view.SurfaceHolder))(@Nullable SurfaceHolder surfaceHolder)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the `https://developer.android.com/reference/android/view/SurfaceHolder.html` that holds the `https://developer.android.com/reference/android/view/Surface.html` onto which video will be rendered. The player will track the lifecycle of the surface automatically.

The thread that calls the `https://developer.android.com/reference/android/view/SurfaceHolder.Callback.html` methods must be the thread associated with `https://developer.android.com/reference/androidx/media3/common/Player#getApplicationLooper()`.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_VIDEO_SURFACE()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/view/SurfaceHolder.html surfaceHolder` | The surface holder. |

### setVideoSurfaceView

```
public void [setVideoSurfaceView](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVideoSurfaceView(android.view.SurfaceView))(@Nullable SurfaceView surfaceView)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the `https://developer.android.com/reference/android/view/SurfaceView.html` onto which video will be rendered. The player will track the lifecycle of the surface automatically.

The thread that calls the `https://developer.android.com/reference/android/view/SurfaceHolder.Callback.html` methods must be the thread associated with `https://developer.android.com/reference/androidx/media3/common/Player#getApplicationLooper()`.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_VIDEO_SURFACE()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/view/SurfaceView.html surfaceView` | The surface view. |

### setVideoTextureView

```
public void [setVideoTextureView](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVideoTextureView(android.view.TextureView))(@Nullable TextureView textureView)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the `https://developer.android.com/reference/android/view/TextureView.html` onto which video will be rendered. The player will track the lifecycle of the surface automatically.

Consider using `https://developer.android.com/reference/android/view/SurfaceView.html` via `https://developer.android.com/reference/androidx/media3/common/Player#setVideoSurfaceView(android.view.SurfaceView)` instead of `https://developer.android.com/reference/android/view/TextureView.html`. `https://developer.android.com/reference/android/view/SurfaceView.html` generally causes lower battery consumption, and has better handling for HDR and secure content. See [Choosing a surface type](https://developer.android.com/guide/topics/media/ui/playerview#surfacetype) for more information.

The thread that calls the `https://developer.android.com/reference/android/view/TextureView.SurfaceTextureListener.html` methods must be the thread associated with `https://developer.android.com/reference/androidx/media3/common/Player#getApplicationLooper()`.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_VIDEO_SURFACE()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/view/TextureView.html textureView` | The texture view. |

### setVirtualDeviceId

```
public void [setVirtualDeviceId](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVirtualDeviceId(int))(int virtualDeviceId)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the virtual device id to be used for playback.

Note that the initial value is obtained from `https://developer.android.com/reference/android/content/Context.html#getDeviceId()` from the `https://developer.android.com/reference/android/content/Context.html` passed to `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.Builder#Builder(android.content.Context)`.

| Parameters |
|---|---|
| `int virtualDeviceId` | The `https://developer.android.com/reference/android/companion/virtual/VirtualDevice.html#getDeviceId()`, or `https://developer.android.com/reference/androidx/media3/common/C#INDEX_UNSET()` if unspecified. |

### setVolume

```
public void [setVolume](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setVolume(float))(float volume)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the audio volume, valid values are between 0 (silence) and 1 (unity gain, signal unchanged), inclusive.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_VOLUME()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

| Parameters |
|---|---|
| `float volume` | Linear output gain to apply to all audio channels. |

### setWakeMode

```
public void [setWakeMode](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#setWakeMode(int))(@C.WakeMode int wakeMode)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets how the player should keep the device awake for playback when the screen is off.

Enabling this feature requires the `https://developer.android.com/reference/android/Manifest.permission.html#WAKE_LOCK` permission. It should be used together with a foreground `https://developer.android.com/reference/android/app/Service.html` 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 (`https://developer.android.com/reference/android/os/PowerManager.WakeLock.html` / `https://developer.android.com/reference/android/net/wifi/WifiManager.WifiLock.html`) will be held whenever the player is in the `https://developer.android.com/reference/androidx/media3/common/Player#STATE_READY()` or `https://developer.android.com/reference/androidx/media3/common/Player#STATE_BUFFERING()` states with `playWhenReady = true`. The locks held depends on the specified `https://developer.android.com/reference/androidx/media3/common/C.WakeMode`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/media3/common/C.WakeMode int wakeMode` | The `https://developer.android.com/reference/androidx/media3/common/C.WakeMode` option to keep the device awake during playback. |

### stop

```
public void [stop](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#stop())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Stops playback without resetting the playlist. Use `https://developer.android.com/reference/androidx/media3/common/Player#pause()` rather than this method if the intention is to pause playback.

Calling this method will cause the playback state to transition to `https://developer.android.com/reference/androidx/media3/common/Player#STATE_IDLE()` and the player will release the loaded media and resources required for playback. The player instance can still be used by calling `https://developer.android.com/reference/androidx/media3/common/Player#prepare()` again, and `https://developer.android.com/reference/androidx/media3/common/Player#release()` must still be called on the player if it's no longer required.

Calling this method does not clear the playlist, reset the playback position or the playback error.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_STOP()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

### unmute

```
public void [unmute](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#unmute())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

If the audio volume is 0, sets the audio volume to a non-zero value decided by the Player to be the most appropriate.

This method must only be called if `https://developer.android.com/reference/androidx/media3/common/Player#COMMAND_SET_VOLUME()` is `https://developer.android.com/reference/androidx/media3/common/Player#getAvailableCommands()`.

## Protected methods

### seekTo

```
protected void [seekTo](https://developer.android.com/reference/androidx/media3/exoplayer/SimpleExoPlayer#seekTo(int,long,int,boolean))(
    int mediaItemIndex,
    long positionMs,
    @Player.Command int seekCommand,
    boolean isRepeatingCurrentItem
)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Seeks to a position in the specified `https://developer.android.com/reference/androidx/media3/common/MediaItem`.

| Parameters |
|---|---|
| `int mediaItemIndex` | The index of the `https://developer.android.com/reference/androidx/media3/common/MediaItem`. If the original seek operation did not directly specify an index, this is the most likely implied index based on the available player state. If the implied action is to do nothing, this will be `https://developer.android.com/reference/androidx/media3/common/C#INDEX_UNSET()`. |
| `long positionMs` | The seek position in the specified `https://developer.android.com/reference/androidx/media3/common/MediaItem` in milliseconds, or `https://developer.android.com/reference/androidx/media3/common/C#TIME_UNSET()` to seek to the media item's default position. If the original seek operation did not directly specify a position, this is the most likely implied position based on the available player state. |
| `@https://developer.android.com/reference/androidx/media3/common/Player.Command int seekCommand` | The `https://developer.android.com/reference/androidx/media3/common/Player.Command` used to trigger the seek. |
| `boolean isRepeatingCurrentItem` | Whether this seeks repeats the current item. |