# ExoPlayerTestRunner.Builder

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/ExoPlayerTestRunner.java+class:androidx.media3.test.utils.ExoPlayerTestRunner.Builder)

*** ** * ** ***


```
class ExoPlayerTestRunner.Builder
```

<br />

*** ** * ** ***

Builder to set-up an `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner`. Default fake implementations will be used for unset test properties.

## Summary

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

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner!` | `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#build()()` Builds an `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner` using the provided values or their defaults. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#initialSeek(int,long)(mediaItemIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, positionMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Seeks before setting the media sources and preparing the player. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setActionSchedule(androidx.media3.test.utils.ActionSchedule)(actionSchedule: https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ActionSchedule!)` Sets an `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ActionSchedule` to be run by the test runner. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setAnalyticsListener(androidx.media3.exoplayer.analytics.AnalyticsListener)(analyticsListener: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/analytics/AnalyticsListener!)` Sets an `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/analytics/AnalyticsListener` to be registered. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setBandwidthMeter(androidx.media3.exoplayer.upstream.BandwidthMeter)(bandwidthMeter: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/BandwidthMeter!)` |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setClock(androidx.media3.common.util.Clock)(clock: https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock!)` |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setExpectedPlayerEndedCount(int)(expectedPlayerEndedCount: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets the number of times the test runner is expected to reach the `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#STATE_ENDED()` or `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#STATE_IDLE()`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setLoadControl(androidx.media3.exoplayer.LoadControl)(loadControl: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/LoadControl!)` |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setManifest(java.lang.Object)(manifest: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!)` Sets a manifest to be used by a `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource` in the test runner. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setMediaSources(androidx.media3.exoplayer.source.MediaSource...)(mediaSources: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource!>!)` Sets the `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource`s to be used by the test runner. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setPauseAtEndOfMediaItems(boolean)(pauseAtEndOfMediaItems: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Sets whether to enable pausing at the end of media items. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setPlayerListener(androidx.media3.common.Player.Listener)(playerListener: https://developer.android.com/reference/kotlin/androidx/media3/common/Player.Listener!)` Sets an `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.Listener` to be registered to listen to player events. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setPreloadConfiguration(androidx.media3.exoplayer.ExoPlayer.PreloadConfiguration)( preloadConfiguration: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ExoPlayer.PreloadConfiguration! )` |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#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!>!)` |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setRenderersFactory(androidx.media3.exoplayer.RenderersFactory)(renderersFactory: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RenderersFactory!)` |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setSupportedFormats(androidx.media3.common.Format...)(supportedFormats: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/media3/common/Format!>!)` Sets a list of `https://developer.android.com/reference/kotlin/androidx/media3/common/Format`s to be used by a `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource` to create media periods. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setTimeline(androidx.media3.common.Timeline)(timeline: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline!)` Sets a `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline` to be used by a `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource` in the test runner. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setTrackSelector(androidx.media3.exoplayer.trackselection.DefaultTrackSelector)(trackSelector: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector!)` |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setUseLazyPreparation(boolean)(useLazyPreparation: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setVideoSurface(android.view.Surface)(surface: https://developer.android.com/reference/android/view/Surface.html!)` Sets the video `https://developer.android.com/reference/android/view/Surface.html`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#skipSettingMediaSources()()` Skips calling `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ExoPlayer#setMediaSources(java.util.List<androidx.media3.exoplayer.source.MediaSource>)` before preparing. |

## Public constructors

### Builder

```
Builder(context: Context!)
```

## Public functions

### build

```
fun build(): ExoPlayerTestRunner!
```

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

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner!` | The built `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner`. |

### initialSeek

```
@CanIgnoreReturnValue
fun initialSeek(mediaItemIndex: Int, positionMs: Long): ExoPlayerTestRunner.Builder!
```

Seeks before setting the media sources and preparing the player.

| Parameters |
|---|---|
| `mediaItemIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The media item index to seek to. |
| `positionMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The position in milliseconds to seek to. |

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

### setActionSchedule

```
@CanIgnoreReturnValue
fun setActionSchedule(actionSchedule: ActionSchedule!): ExoPlayerTestRunner.Builder!
```

Sets an `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ActionSchedule` to be run by the test runner. The first action will be executed immediately before `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#prepare()`.

| Parameters |
|---|---|
| `actionSchedule: https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ActionSchedule!` | An `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ActionSchedule` to be used by the test runner. |

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

### setAnalyticsListener

```
@CanIgnoreReturnValue
fun setAnalyticsListener(analyticsListener: AnalyticsListener!): ExoPlayerTestRunner.Builder!
```

Sets an `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/analytics/AnalyticsListener` to be registered.

| Parameters |
|---|---|
| `analyticsListener: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/analytics/AnalyticsListener!` | An `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/analytics/AnalyticsListener` to be registered. |

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

### setBandwidthMeter

```
@CanIgnoreReturnValue
fun setBandwidthMeter(bandwidthMeter: BandwidthMeter!): ExoPlayerTestRunner.Builder!
```

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

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#setBandwidthMeter(androidx.media3.exoplayer.upstream.BandwidthMeter)` |   |

### setClock

```
@CanIgnoreReturnValue
fun setClock(clock: Clock!): ExoPlayerTestRunner.Builder!
```

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

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#setClock(androidx.media3.common.util.Clock)` |   |

### setExpectedPlayerEndedCount

```
@CanIgnoreReturnValue
fun setExpectedPlayerEndedCount(expectedPlayerEndedCount: Int): ExoPlayerTestRunner.Builder!
```

Sets the number of times the test runner is expected to reach the `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#STATE_ENDED()` or `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#STATE_IDLE()`. The default is 1. This affects how long `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner#blockUntilEnded(long)` waits.

| Parameters |
|---|---|
| `expectedPlayerEndedCount: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The number of times the player is expected to reach the ended or idle state. |

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

### setLoadControl

```
@CanIgnoreReturnValue
fun setLoadControl(loadControl: LoadControl!): ExoPlayerTestRunner.Builder!
```

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

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#setLoadControl(androidx.media3.exoplayer.LoadControl)` |   |

### setManifest

```
@CanIgnoreReturnValue
fun setManifest(manifest: Any!): ExoPlayerTestRunner.Builder!
```

Sets a manifest to be used by a `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource` in the test runner. The default value is null. Setting the manifest is not allowed after a call to `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setMediaSources(androidx.media3.exoplayer.source.MediaSource...)` or `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#skipSettingMediaSources()`.

| Parameters |
|---|---|
| `manifest: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!` | A manifest to be used by a `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource` in the test runner. |

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

### setMediaSources

```
@CanIgnoreReturnValue
fun setMediaSources(mediaSources: Array<MediaSource!>!): ExoPlayerTestRunner.Builder!
```

Sets the `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource`s to be used by the test runner. The default value is a `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource` with the timeline and manifest provided by `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setTimeline(androidx.media3.common.Timeline)` and `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setManifest(java.lang.Object)`. Setting media sources is not allowed after calls to `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#skipSettingMediaSources()`, `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setTimeline(androidx.media3.common.Timeline)` and/or `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setManifest(java.lang.Object)`.

| Parameters |
|---|---|
| `mediaSources: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource!>!` | The `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource`s to be used by the test runner. |

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

### setPauseAtEndOfMediaItems

```
@CanIgnoreReturnValue
fun setPauseAtEndOfMediaItems(pauseAtEndOfMediaItems: Boolean): ExoPlayerTestRunner.Builder!
```

Sets whether to enable pausing at the end of media items.

| Parameters |
|---|---|
| `pauseAtEndOfMediaItems: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether to pause at the end of media items. |

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

### setPlayerListener

```
@CanIgnoreReturnValue
fun setPlayerListener(playerListener: Player.Listener!): ExoPlayerTestRunner.Builder!
```

Sets an `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.Listener` to be registered to listen to player events.

| Parameters |
|---|---|
| `playerListener: https://developer.android.com/reference/kotlin/androidx/media3/common/Player.Listener!` | A `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.Listener` to be registered by the test runner to listen to player events. |

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

### setPreloadConfiguration

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

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

| 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!>!): ExoPlayerTestRunner.Builder!
```

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

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#setRenderers(androidx.media3.exoplayer.Renderer...)` |   |

### setRenderersFactory

```
@CanIgnoreReturnValue
fun setRenderersFactory(renderersFactory: RenderersFactory!): ExoPlayerTestRunner.Builder!
```

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

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#setRenderersFactory(androidx.media3.exoplayer.RenderersFactory)` |   |

### setSupportedFormats

```
@CanIgnoreReturnValue
fun setSupportedFormats(supportedFormats: Array<Format!>!): ExoPlayerTestRunner.Builder!
```

Sets a list of `https://developer.android.com/reference/kotlin/androidx/media3/common/Format`s to be used by a `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource` to create media periods. The default value is a single `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner#VIDEO_FORMAT()`. Note that this parameter doesn't have any influence if a media source with `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setMediaSources(androidx.media3.exoplayer.source.MediaSource...)` is set.

| Parameters |
|---|---|
| `supportedFormats: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/media3/common/Format!>!` | A list of supported `https://developer.android.com/reference/kotlin/androidx/media3/common/Format`s. |

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

### setTimeline

```
@CanIgnoreReturnValue
fun setTimeline(timeline: Timeline!): ExoPlayerTestRunner.Builder!
```

Sets a `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline` to be used by a `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource` in the test runner. The default value is a seekable, non-dynamic `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeTimeline` with a duration of `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeTimeline.TimelineWindowDefinition#DEFAULT_WINDOW_DURATION_US()`. Setting the timeline is not allowed after a call to `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setMediaSources(androidx.media3.exoplayer.source.MediaSource...)` or `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#skipSettingMediaSources()`.

| Parameters |
|---|---|
| `timeline: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline!` | A `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline` to be used by a `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource` in the test runner. |

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

### setTrackSelector

```
@CanIgnoreReturnValue
fun setTrackSelector(trackSelector: DefaultTrackSelector!): ExoPlayerTestRunner.Builder!
```

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

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#setTrackSelector(androidx.media3.exoplayer.trackselection.DefaultTrackSelector)` |   |

### setUseLazyPreparation

```
@CanIgnoreReturnValue
fun setUseLazyPreparation(useLazyPreparation: Boolean): ExoPlayerTestRunner.Builder!
```

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

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestExoPlayerBuilder#setUseLazyPreparation(boolean)` |   |

### setVideoSurface

```
@CanIgnoreReturnValue
fun setVideoSurface(surface: Surface!): ExoPlayerTestRunner.Builder!
```

Sets the video `https://developer.android.com/reference/android/view/Surface.html`. The default value is `null`.

| Parameters |
|---|---|
| `surface: https://developer.android.com/reference/android/view/Surface.html!` | The `https://developer.android.com/reference/android/view/Surface.html` to be used by the player. |

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

### skipSettingMediaSources

```
@CanIgnoreReturnValue
fun skipSettingMediaSources(): ExoPlayerTestRunner.Builder!
```

Skips calling `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ExoPlayer#setMediaSources(java.util.List<androidx.media3.exoplayer.source.MediaSource>)` before preparing. Calling this method is not allowed after calls to `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setMediaSources(androidx.media3.exoplayer.source.MediaSource...)`, `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setTimeline(androidx.media3.common.Timeline)` and/or `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/ExoPlayerTestRunner.Builder#setManifest(java.lang.Object)`.

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