# 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
class TestExoPlayerBuilder
```

<br />

*** ** * ** ***

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

## Summary

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

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ExoPlayer!` | `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#build()()` Builds an `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ExoPlayer` using the provided values or their defaults. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#getMaxSeekToPreviousPosition()()` Returns the max seek to previous position used by the player. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#setDeviceVolumeControlEnabled(boolean)(deviceVolumeControlEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Sets the variable controlling player's ability to get/set device volume. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#setEnforceAdPlaybackOnTimelineRefresh(boolean)( enforceAdPlaybackOnTimelineRefresh: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` See `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ExoPlayer.Builder#setEnforceAdPlaybackOnTimelineRefresh(boolean)` for details. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#setMaxSeekToPreviousPositionMs(long)(maxSeekToPreviousPositionMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Sets the max seek to previous position, in milliseconds, to be used by the player. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#setPreloadConfiguration(androidx.media3.exoplayer.ExoPlayer.PreloadConfiguration)( preloadConfiguration: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ExoPlayer.PreloadConfiguration! )` Sets the preload configuration. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#setRenderers(androidx.media3.exoplayer.Renderer...)(renderers: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/Renderer!>!)` Sets the `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/Renderer`s. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#setStuckPlayingDetectionTimeoutMs(int)(stuckPlayingDetectionTimeoutMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` See `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ExoPlayer.Builder#setStuckPlayingDetectionTimeoutMs(int)` for details. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#setStuckSuppressedDetectionTimeoutMs(int)( stuckSuppressedDetectionTimeoutMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html )` See `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ExoPlayer.Builder#setStuckSuppressedDetectionTimeoutMs(int)` for details. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#setSuppressPlaybackOnUnsuitableOutput(boolean)( suppressPlaybackOnUnsuitableOutput: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` See `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ExoPlayer.Builder#setSuppressPlaybackOnUnsuitableOutput(boolean)` for details. |

| ### Public properties |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/BandwidthMeter!` | `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#bandwidthMeter()` |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock!` | `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#clock()` |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/LoadControl!` | `https://developer.android.com/reference/kotlin/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/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#looper()` |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory?` | `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#mediaSourceFactory()` |
| `https://developer.android.com/reference/android/os/Looper.html?` | `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#playbackLooper()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/Renderer!>?` | `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#renderers()` |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RenderersFactory?` | `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#renderersFactory()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#seekBackIncrementMs()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#seekForwardIncrementMs()` |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector!` | `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#trackSelector()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#useLazyPreparation()` |

## Public constructors

### TestExoPlayerBuilder

```
TestExoPlayerBuilder(context: Context!)
```

## Public functions

### build

```
fun build(): ExoPlayer!
```

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

### getMaxSeekToPreviousPosition

```
fun getMaxSeekToPreviousPosition(): Long
```

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

### setDeviceVolumeControlEnabled

```
@CanIgnoreReturnValue
fun setDeviceVolumeControlEnabled(deviceVolumeControlEnabled: Boolean): TestExoPlayerBuilder!
```

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

| Parameters |
|---|---|
| `deviceVolumeControlEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether the player can get/set device volume. |

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

### setEnforceAdPlaybackOnTimelineRefresh

```
@CanIgnoreReturnValue
fun setEnforceAdPlaybackOnTimelineRefresh(
    enforceAdPlaybackOnTimelineRefresh: Boolean
): TestExoPlayerBuilder!
```

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

| Parameters |
|---|---|
| `enforceAdPlaybackOnTimelineRefresh: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether to enforce ad playback on timeline refresh. |

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

### setMaxSeekToPreviousPositionMs

```
@CanIgnoreReturnValue
fun setMaxSeekToPreviousPositionMs(maxSeekToPreviousPositionMs: Long): TestExoPlayerBuilder!
```

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

| Parameters |
|---|---|
| `maxSeekToPreviousPositionMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The max seek to previous position to be used by the player. |

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

### setPreloadConfiguration

```
@CanIgnoreReturnValue
fun setPreloadConfiguration(
    preloadConfiguration: ExoPlayer.PreloadConfiguration!
): TestExoPlayerBuilder!
```

Sets the preload configuration.

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

### setRenderers

```
@CanIgnoreReturnValue
fun setRenderers(renderers: Array<Renderer!>!): TestExoPlayerBuilder!
```

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

| Parameters |
|---|---|
| `renderers: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/Renderer!>!` | A list of `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/Renderer`s to be used by the player. |

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

### setStuckPlayingDetectionTimeoutMs

```
@CanIgnoreReturnValue
fun setStuckPlayingDetectionTimeoutMs(stuckPlayingDetectionTimeoutMs: Int): TestExoPlayerBuilder!
```

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

| Parameters |
|---|---|
| `stuckPlayingDetectionTimeoutMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The timeout after which the player is assumed stuck playing, in milliseconds. |

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

### setStuckSuppressedDetectionTimeoutMs

```
@CanIgnoreReturnValue
fun setStuckSuppressedDetectionTimeoutMs(
    stuckSuppressedDetectionTimeoutMs: Int
): TestExoPlayerBuilder!
```

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

| Parameters |
|---|---|
| `stuckSuppressedDetectionTimeoutMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The timeout after which the player is assumed stuck in a suppressed state, in milliseconds. |

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

### setSuppressPlaybackOnUnsuitableOutput

```
@CanIgnoreReturnValue
fun setSuppressPlaybackOnUnsuitableOutput(
    suppressPlaybackOnUnsuitableOutput: Boolean
): TestExoPlayerBuilder!
```

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

| Parameters |
|---|---|
| `suppressPlaybackOnUnsuitableOutput: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether the player should suppress the playback when it is attempted on an unsuitable output. |

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

## Public properties

### bandwidthMeter

```
var bandwidthMeter: BandwidthMeter!
```

### clock

```
var clock: Clock!
```

### loadControl

```
var loadControl: LoadControl!
```

### looper

```
@MonotonicNonNull
var looper: @MonotonicNonNull Looper!
```

### mediaSourceFactory

```
var mediaSourceFactory: MediaSource.Factory?
```

### playbackLooper

```
var playbackLooper: Looper?
```

### renderers

```
val renderers: Array<Renderer!>?
```

### renderersFactory

```
var renderersFactory: RenderersFactory?
```

### seekBackIncrementMs

```
var seekBackIncrementMs: Long
```

### seekForwardIncrementMs

```
var seekForwardIncrementMs: Long
```

### trackSelector

```
var trackSelector: DefaultTrackSelector!
```

### useLazyPreparation

```
var useLazyPreparation: Boolean
```