# TestExoPlayerBuilder

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

*** ** * ** ***


```
@UnstableApi
public class TestExoPlayerBuilder
```

<br />

*** ** * ** ***

A builder of `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer` instances for testing.

## Summary

| ### Public fields |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/BandwidthMeter` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#bandwidthMeter()` |
| `https://developer.android.com/reference/androidx/media3/common/util/Clock` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#clock()` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/LoadControl` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#loadControl()` |
| `@https://checkerframework.org/api/org/checkerframework/checker/nullness/qual/MonotonicNonNull.html https://developer.android.com/reference/android/os/Looper.html` | `@https://checkerframework.org/api/org/checkerframework/checker/nullness/qual/MonotonicNonNull.html https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#looper()` |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.Factory` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#mediaSourceFactory()` |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/os/Looper.html` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#playbackLooper()` |
| `@https://developer.android.com/reference/androidx/annotation/Nullable Renderer[]` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#renderers()` |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/RenderersFactory` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#renderersFactory()` |
| `long` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#seekBackIncrementMs()` |
| `long` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#seekForwardIncrementMs()` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#trackSelector()` |
| `boolean` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#useLazyPreparation()` |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#TestExoPlayerBuilder(android.content.Context)(https://developer.android.com/reference/android/content/Context.html context)` |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#build()()` Builds an `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer` using the provided values or their defaults. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/BandwidthMeter` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#getBandwidthMeter()()` Returns the bandwidth meter used by the player. |
| `https://developer.android.com/reference/androidx/media3/common/util/Clock` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#getClock()()` Returns the clock used by the player. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/LoadControl` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#getLoadControl()()` Returns the `https://developer.android.com/reference/androidx/media3/exoplayer/LoadControl` that will be used by the player. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/os/Looper.html` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#getLooper()()` Returns the `https://developer.android.com/reference/android/os/Looper.html` that will be used by the player, or null if no `https://developer.android.com/reference/android/os/Looper.html` has been set yet and no default is available. |
| `long` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#getMaxSeekToPreviousPosition()()` Returns the max seek to previous position used by the player. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.Factory` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#getMediaSourceFactory()()` Returns the `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.Factory` that will be used by the player, or null if no `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.Factory` has been set yet and no default is available. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/os/Looper.html` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#getPlaybackLooper()()` Returns the `https://developer.android.com/reference/android/os/Looper.html` that will be used for playback, or null if no `https://developer.android.com/reference/android/os/Looper.html` has been set yet and no default is available. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable Renderer[]` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#getRenderers()()` Returns the `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` that have been set with `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setRenderers(androidx.media3.exoplayer.Renderer...)` or null if no `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` have been explicitly set. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/RenderersFactory` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#getRenderersFactory()()` Returns the `https://developer.android.com/reference/androidx/media3/exoplayer/RenderersFactory` that has been set with `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setRenderersFactory(androidx.media3.exoplayer.RenderersFactory)` or null if no factory has been explicitly set. |
| `long` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#getSeekBackIncrementMs()()` Returns the seek back increment used by the player. |
| `long` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#getSeekForwardIncrementMs()()` Returns the seek forward increment used by the player. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#getTrackSelector()()` Returns the track selector used by the player. |
| `boolean` | `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#getUseLazyPreparation()()` Returns whether the player will use lazy preparation. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setBandwidthMeter(androidx.media3.exoplayer.upstream.BandwidthMeter)(https://developer.android.com/reference/androidx/media3/exoplayer/upstream/BandwidthMeter bandwidthMeter)` Sets the `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/BandwidthMeter`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setClock(androidx.media3.common.util.Clock)(https://developer.android.com/reference/androidx/media3/common/util/Clock clock)` Sets the `https://developer.android.com/reference/androidx/media3/common/util/Clock` to be used by the player. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setDeviceVolumeControlEnabled(boolean)(boolean deviceVolumeControlEnabled)` Sets the variable controlling player's ability to get/set device volume. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setEnforceAdPlaybackOnTimelineRefresh(boolean)( boolean enforceAdPlaybackOnTimelineRefresh )` See `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.Builder#setEnforceAdPlaybackOnTimelineRefresh(boolean)` for details. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setLoadControl(androidx.media3.exoplayer.LoadControl)(https://developer.android.com/reference/androidx/media3/exoplayer/LoadControl loadControl)` Sets a `https://developer.android.com/reference/androidx/media3/exoplayer/LoadControl` to be used by the player. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setLooper(android.os.Looper)(https://developer.android.com/reference/android/os/Looper.html looper)` Sets the `https://developer.android.com/reference/android/os/Looper.html` to be used for all calls to the player and for calling listeners. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setMaxSeekToPreviousPositionMs(long)(long maxSeekToPreviousPositionMs)` Sets the max seek to previous position, in milliseconds, to be used by the player. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setMediaSourceFactory(androidx.media3.exoplayer.source.MediaSource.Factory)(https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.Factory mediaSourceFactory)` Sets the `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.Factory` to be used by the player. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setPlaybackLooper(android.os.Looper)(https://developer.android.com/reference/android/os/Looper.html playbackLooper)` Sets the `https://developer.android.com/reference/android/os/Looper.html` to be used for playback. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setPreloadConfiguration(androidx.media3.exoplayer.ExoPlayer.PreloadConfiguration)( https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.PreloadConfiguration preloadConfiguration )` Sets the preload configuration. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setRenderers(androidx.media3.exoplayer.Renderer...)(Renderer[] renderers)` Sets the `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer`s. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setRenderersFactory(androidx.media3.exoplayer.RenderersFactory)(https://developer.android.com/reference/androidx/media3/exoplayer/RenderersFactory renderersFactory)` Sets the `https://developer.android.com/reference/androidx/media3/exoplayer/RenderersFactory`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setSeekBackIncrementMs(long)(long seekBackIncrementMs)` Sets the seek back increment to be used by the player. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setSeekForwardIncrementMs(long)(long seekForwardIncrementMs)` Sets the seek forward increment to be used by the player. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setStuckPlayingDetectionTimeoutMs(int)(int stuckPlayingDetectionTimeoutMs)` See `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.Builder#setStuckPlayingDetectionTimeoutMs(int)` for details. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setStuckSuppressedDetectionTimeoutMs(int)( int stuckSuppressedDetectionTimeoutMs )` See `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.Builder#setStuckSuppressedDetectionTimeoutMs(int)` for details. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setSuppressPlaybackOnUnsuitableOutput(boolean)( boolean suppressPlaybackOnUnsuitableOutput )` See `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.Builder#setSuppressPlaybackOnUnsuitableOutput(boolean)` for details. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setTrackSelector(androidx.media3.exoplayer.trackselection.DefaultTrackSelector)(https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector trackSelector)` Sets a `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setUseLazyPreparation(boolean)(boolean useLazyPreparation)` Sets whether to use lazy preparation. |

## Public fields

### bandwidthMeter

```
public BandwidthMeter bandwidthMeter
```

### clock

```
public Clock clock
```

### loadControl

```
public LoadControl loadControl
```

### looper

```
@MonotonicNonNull
public @MonotonicNonNull Looper looper
```

### mediaSourceFactory

```
public @Nullable MediaSource.Factory mediaSourceFactory
```

### playbackLooper

```
public @Nullable Looper playbackLooper
```

### renderers

```
public @Nullable Renderer[] renderers
```

### renderersFactory

```
public @Nullable RenderersFactory renderersFactory
```

### seekBackIncrementMs

```
public long seekBackIncrementMs
```

### seekForwardIncrementMs

```
public long seekForwardIncrementMs
```

### trackSelector

```
public DefaultTrackSelector trackSelector
```

### useLazyPreparation

```
public boolean useLazyPreparation
```

## Public constructors

### TestExoPlayerBuilder

```
public TestExoPlayerBuilder(Context context)
```

## Public methods

### build

```
public ExoPlayer build()
```

Builds an `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer` using the provided values or their defaults.

### getBandwidthMeter

```
public BandwidthMeter getBandwidthMeter()
```

Returns the bandwidth meter used by the player.

### getClock

```
public Clock getClock()
```

Returns the clock used by the player.

### getLoadControl

```
public LoadControl getLoadControl()
```

Returns the `https://developer.android.com/reference/androidx/media3/exoplayer/LoadControl` that will be used by the player.

### getLooper

```
public @Nullable Looper getLooper()
```

Returns the `https://developer.android.com/reference/android/os/Looper.html` that will be used by the player, or null if no `https://developer.android.com/reference/android/os/Looper.html` has been set yet and no default is available.

### getMaxSeekToPreviousPosition

```
public long getMaxSeekToPreviousPosition()
```

Returns the max seek to previous position used by the player.

### getMediaSourceFactory

```
public @Nullable MediaSource.Factory getMediaSourceFactory()
```

Returns the `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.Factory` that will be used by the player, or null if no `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.Factory` has been set yet and no default is available.

### getPlaybackLooper

```
public @Nullable Looper getPlaybackLooper()
```

Returns the `https://developer.android.com/reference/android/os/Looper.html` that will be used for playback, or null if no `https://developer.android.com/reference/android/os/Looper.html` has been set yet and no default is available.

### getRenderers

```
public @Nullable Renderer[] getRenderers()
```

Returns the `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` that have been set with `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setRenderers(androidx.media3.exoplayer.Renderer...)` or null if no `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` have been explicitly set. Note that these renderers may not be the ones used by the built player, for example if a `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setRenderersFactory(androidx.media3.exoplayer.RenderersFactory)` has been set.

### getRenderersFactory

```
public @Nullable RenderersFactory getRenderersFactory()
```

Returns the `https://developer.android.com/reference/androidx/media3/exoplayer/RenderersFactory` that has been set with `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setRenderersFactory(androidx.media3.exoplayer.RenderersFactory)` or null if no factory has been explicitly set.

### getSeekBackIncrementMs

```
public long getSeekBackIncrementMs()
```

Returns the seek back increment used by the player.

### getSeekForwardIncrementMs

```
public long getSeekForwardIncrementMs()
```

Returns the seek forward increment used by the player.

### getTrackSelector

```
public DefaultTrackSelector getTrackSelector()
```

Returns the track selector used by the player.

### getUseLazyPreparation

```
public boolean getUseLazyPreparation()
```

Returns whether the player will use lazy preparation.

### setBandwidthMeter

```
@CanIgnoreReturnValue
public TestExoPlayerBuilder setBandwidthMeter(BandwidthMeter bandwidthMeter)
```

Sets the `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/BandwidthMeter`. The default value is a `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/DefaultBandwidthMeter` in its default configuration.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/BandwidthMeter bandwidthMeter` | The `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/BandwidthMeter` to be used by the player. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | This builder. |

### setClock

```
@CanIgnoreReturnValue
public TestExoPlayerBuilder setClock(Clock clock)
```

Sets the `https://developer.android.com/reference/androidx/media3/common/util/Clock` to be used by the player. The default value is an auto-advancing `https://developer.android.com/reference/androidx/media3/test/utils/FakeClock`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/util/Clock clock` | A `https://developer.android.com/reference/androidx/media3/common/util/Clock` to be used by the player. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | This builder. |

### setDeviceVolumeControlEnabled

```
@CanIgnoreReturnValue
public TestExoPlayerBuilder setDeviceVolumeControlEnabled(boolean deviceVolumeControlEnabled)
```

Sets the variable controlling player's ability to get/set device volume.

| Parameters |
|---|---|
| `boolean deviceVolumeControlEnabled` | Whether the player can get/set device volume. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | This builder. |

### setEnforceAdPlaybackOnTimelineRefresh

```
@CanIgnoreReturnValue
public TestExoPlayerBuilder setEnforceAdPlaybackOnTimelineRefresh(
    boolean enforceAdPlaybackOnTimelineRefresh
)
```

See `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.Builder#setEnforceAdPlaybackOnTimelineRefresh(boolean)` for details.

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

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | This builder. |

### setLoadControl

```
@CanIgnoreReturnValue
public TestExoPlayerBuilder setLoadControl(LoadControl loadControl)
```

Sets a `https://developer.android.com/reference/androidx/media3/exoplayer/LoadControl` to be used by the player. The default value is a `https://developer.android.com/reference/androidx/media3/exoplayer/DefaultLoadControl`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/LoadControl loadControl` | The `https://developer.android.com/reference/androidx/media3/exoplayer/LoadControl` to be used by the player. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | This builder. |

### setLooper

```
@CanIgnoreReturnValue
public TestExoPlayerBuilder setLooper(Looper looper)
```

Sets the `https://developer.android.com/reference/android/os/Looper.html` to be used for all calls to the player and for calling listeners.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/os/Looper.html looper` | The `https://developer.android.com/reference/android/os/Looper.html` to be used for all calls to the player and for calling listeners. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | This builder. |

### setMaxSeekToPreviousPositionMs

```
@CanIgnoreReturnValue
public TestExoPlayerBuilder setMaxSeekToPreviousPositionMs(long maxSeekToPreviousPositionMs)
```

Sets the max seek to previous position, in milliseconds, to be used by the player.

| Parameters |
|---|---|
| `long maxSeekToPreviousPositionMs` | The max seek to previous position to be used by the player. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | This builder. |

### setMediaSourceFactory

```
@CanIgnoreReturnValue
public TestExoPlayerBuilder setMediaSourceFactory(MediaSource.Factory mediaSourceFactory)
```

Sets the `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.Factory` to be used by the player.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.Factory mediaSourceFactory` | The `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.Factory` to be used by the player. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | This builder. |

### setPlaybackLooper

```
@CanIgnoreReturnValue
public TestExoPlayerBuilder setPlaybackLooper(Looper playbackLooper)
```

Sets the `https://developer.android.com/reference/android/os/Looper.html` to be used for playback.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/os/Looper.html playbackLooper` | The `https://developer.android.com/reference/android/os/Looper.html` to be used for playback. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | This builder. |

### setPreloadConfiguration

```
@CanIgnoreReturnValue
public TestExoPlayerBuilder setPreloadConfiguration(
    ExoPlayer.PreloadConfiguration preloadConfiguration
)
```

Sets the preload configuration.

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

### setRenderers

```
@CanIgnoreReturnValue
public TestExoPlayerBuilder setRenderers(Renderer[] renderers)
```

Sets the `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer`s. If not set, the player will use a `https://developer.android.com/reference/androidx/media3/test/utils/FakeVideoRenderer` and a `https://developer.android.com/reference/androidx/media3/test/utils/FakeAudioRenderer`. Setting the renderers is not allowed after a call to `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setRenderersFactory(androidx.media3.exoplayer.RenderersFactory)`.

| Parameters |
|---|---|
| `Renderer[] renderers` | A list of `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer`s to be used by the player. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | This builder. |

### setRenderersFactory

```
@CanIgnoreReturnValue
public TestExoPlayerBuilder setRenderersFactory(RenderersFactory renderersFactory)
```

Sets the `https://developer.android.com/reference/androidx/media3/exoplayer/RenderersFactory`. The default factory creates all renderers set by `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setRenderers(androidx.media3.exoplayer.Renderer...)`. Setting the renderer factory is not allowed after a call to `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder#setRenderers(androidx.media3.exoplayer.Renderer...)`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/RenderersFactory renderersFactory` | A `https://developer.android.com/reference/androidx/media3/exoplayer/RenderersFactory` to be used by the player. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | This builder. |

### setSeekBackIncrementMs

```
@CanIgnoreReturnValue
public TestExoPlayerBuilder setSeekBackIncrementMs(long seekBackIncrementMs)
```

Sets the seek back increment to be used by the player.

| Parameters |
|---|---|
| `long seekBackIncrementMs` | The seek back increment to be used by the player. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | This builder. |

### setSeekForwardIncrementMs

```
@CanIgnoreReturnValue
public TestExoPlayerBuilder setSeekForwardIncrementMs(long seekForwardIncrementMs)
```

Sets the seek forward increment to be used by the player.

| Parameters |
|---|---|
| `long seekForwardIncrementMs` | The seek forward increment to be used by the player. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | This builder. |

### setStuckPlayingDetectionTimeoutMs

```
@CanIgnoreReturnValue
public TestExoPlayerBuilder setStuckPlayingDetectionTimeoutMs(int stuckPlayingDetectionTimeoutMs)
```

See `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.Builder#setStuckPlayingDetectionTimeoutMs(int)` for details.

| Parameters |
|---|---|
| `int stuckPlayingDetectionTimeoutMs` | The timeout after which the player is assumed stuck playing, in milliseconds. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | This builder. |

### setStuckSuppressedDetectionTimeoutMs

```
@CanIgnoreReturnValue
public TestExoPlayerBuilder setStuckSuppressedDetectionTimeoutMs(
    int stuckSuppressedDetectionTimeoutMs
)
```

See `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.Builder#setStuckSuppressedDetectionTimeoutMs(int)` for details.

| Parameters |
|---|---|
| `int stuckSuppressedDetectionTimeoutMs` | The timeout after which the player is assumed stuck in a suppressed state, in milliseconds. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | This builder. |

### setSuppressPlaybackOnUnsuitableOutput

```
@CanIgnoreReturnValue
public TestExoPlayerBuilder setSuppressPlaybackOnUnsuitableOutput(
    boolean suppressPlaybackOnUnsuitableOutput
)
```

See `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer.Builder#setSuppressPlaybackOnUnsuitableOutput(boolean)` for details.

| Parameters |
|---|---|
| `boolean suppressPlaybackOnUnsuitableOutput` | Whether the player should suppress the playback when it is attempted on an unsuitable output. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | This builder. |

### setTrackSelector

```
@CanIgnoreReturnValue
public TestExoPlayerBuilder setTrackSelector(DefaultTrackSelector trackSelector)
```

Sets a `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector`. The default value is a `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector` in its initial configuration.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector trackSelector` | The `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector` to be used by the player. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | This builder. |

### setUseLazyPreparation

```
@CanIgnoreReturnValue
public TestExoPlayerBuilder setUseLazyPreparation(boolean useLazyPreparation)
```

Sets whether to use lazy preparation.

| Parameters |
|---|---|
| `boolean useLazyPreparation` | Whether to use lazy preparation. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | This builder. |