# RemoteCastPlayer.Builder

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

*** ** * ** ***


```
@UnstableApi
class RemoteCastPlayer.Builder
```

<br />

*** ** * ** ***

A builder for `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer` instances.

See `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder#Builder(android.content.Context)` for the list of default values.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder#Builder(android.content.Context)(context: https://developer.android.com/reference/android/content/Context.html!)` Creates a builder. |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer!` | `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder#build()()` Builds and returns a `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer` instance. |
| `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder#setMaxSeekToPreviousPositionMs(long)( maxSeekToPreviousPositionMs: @https://developer.android.com/reference/kotlin/androidx/annotation/IntRange(from = 0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Sets the maximum position for which `https://developer.android.com/reference/kotlin/androidx/media3/common/BasePlayer#seekToPrevious()` seeks to the previous `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder#setMediaItemConverter(androidx.media3.cast.MediaItemConverter)(mediaItemConverter: https://developer.android.com/reference/kotlin/androidx/media3/cast/MediaItemConverter!)` Sets the `https://developer.android.com/reference/kotlin/androidx/media3/cast/MediaItemConverter` that will be used by the player to convert `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder#setSeekBackIncrementMs(long)(seekBackIncrementMs: @https://developer.android.com/reference/kotlin/androidx/annotation/IntRange(from = 1) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Sets the `https://developer.android.com/reference/kotlin/androidx/media3/common/BasePlayer#seekBack()` increment. |
| `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder#setSeekForwardIncrementMs(long)(seekForwardIncrementMs: @https://developer.android.com/reference/kotlin/androidx/annotation/IntRange(from = 1) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Sets the `https://developer.android.com/reference/kotlin/androidx/media3/common/BasePlayer#seekForward()` increment. |
| `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder#setTrackSelector(androidx.media3.cast.CastTrackSelector)(trackSelector: https://developer.android.com/reference/kotlin/androidx/media3/cast/CastTrackSelector!)` Sets the `https://developer.android.com/reference/kotlin/androidx/media3/cast/CastTrackSelector` that will be used by the player to handle `https://developer.android.com/reference/kotlin/androidx/media3/common/TrackSelectionParameters`. |

## Public constructors

### Builder

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

Creates a builder.

The builder uses the following default values:

- `https://developer.android.com/reference/kotlin/androidx/media3/cast/MediaItemConverter`: `https://developer.android.com/reference/kotlin/androidx/media3/cast/DefaultMediaItemConverter`.
- `https://developer.android.com/reference/kotlin/androidx/media3/cast/CastTrackSelector`: By default, `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#COMMAND_SET_TRACK_SELECTION_PARAMETERS()` is not supported, and therefore `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer#setTrackSelectionParameters(androidx.media3.common.TrackSelectionParameters)` is a no-op. Calling `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder#setTrackSelector(androidx.media3.cast.CastTrackSelector)` makes `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#COMMAND_SET_TRACK_SELECTION_PARAMETERS()` allowed on the created `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer`, but the application responsible for implementing `https://developer.android.com/reference/kotlin/androidx/media3/cast/CastTrackSelector#evaluate(androidx.media3.cast.CastTrackSelector.CastTrackSelectorRequest)`.
- `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder#setSeekBackIncrementMs(long)`: `https://developer.android.com/reference/kotlin/androidx/media3/common/C#DEFAULT_SEEK_BACK_INCREMENT_MS()`.
- `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder#setSeekForwardIncrementMs(long)`: `https://developer.android.com/reference/kotlin/androidx/media3/common/C#DEFAULT_SEEK_FORWARD_INCREMENT_MS()`.
- `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder#setMaxSeekToPreviousPositionMs(long)`: `https://developer.android.com/reference/kotlin/androidx/media3/common/C#DEFAULT_MAX_SEEK_TO_PREVIOUS_POSITION_MS()`.

| Parameters |
|---|---|
| `context: https://developer.android.com/reference/android/content/Context.html!` | A `https://developer.android.com/reference/android/content/Context.html`. |

## Public functions

### build

```
fun build(): RemoteCastPlayer!
```

Builds and returns a `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer` instance.

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException.html` | If any of the following condition occurs: - This method has already been called. - The `https://developer.android.com/reference/kotlin/androidx/media3/cast/Cast` has not been initialized via `https://developer.android.com/reference/kotlin/androidx/media3/cast/Cast#initialize()` before this method is called. |

### setMaxSeekToPreviousPositionMs

```
@CanIgnoreReturnValue
fun setMaxSeekToPreviousPositionMs(
    maxSeekToPreviousPositionMs: @IntRange(from = 0) Long
): RemoteCastPlayer.Builder!
```

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

| Parameters |
|---|---|
| `maxSeekToPreviousPositionMs: @https://developer.android.com/reference/kotlin/androidx/annotation/IntRange(from = 0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The maximum position, in milliseconds. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder!` | This builder. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | If `maxSeekToPreviousPositionMs` is negative. |
| `https://developer.android.com/reference/java/lang/IllegalStateException.html` | If `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder#build()` has already been called. |

### setMediaItemConverter

```
@CanIgnoreReturnValue
fun setMediaItemConverter(mediaItemConverter: MediaItemConverter!): RemoteCastPlayer.Builder!
```

Sets the `https://developer.android.com/reference/kotlin/androidx/media3/cast/MediaItemConverter` that will be used by the player to convert `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem`.

| Parameters |
|---|---|
| `mediaItemConverter: https://developer.android.com/reference/kotlin/androidx/media3/cast/MediaItemConverter!` | A `https://developer.android.com/reference/kotlin/androidx/media3/cast/MediaItemConverter`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder!` | This builder. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException.html` | If `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder#build()` has already been called. |

### setSeekBackIncrementMs

```
@CanIgnoreReturnValue
fun setSeekBackIncrementMs(seekBackIncrementMs: @IntRange(from = 1) Long): RemoteCastPlayer.Builder!
```

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

| Parameters |
|---|---|
| `seekBackIncrementMs: @https://developer.android.com/reference/kotlin/androidx/annotation/IntRange(from = 1) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The seek back increment, in milliseconds. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder!` | This builder. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | If `seekBackIncrementMs` is non-positive. |
| `https://developer.android.com/reference/java/lang/IllegalStateException.html` | If `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder#build()` has already been called. |

### setSeekForwardIncrementMs

```
@CanIgnoreReturnValue
fun setSeekForwardIncrementMs(seekForwardIncrementMs: @IntRange(from = 1) Long): RemoteCastPlayer.Builder!
```

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

| Parameters |
|---|---|
| `seekForwardIncrementMs: @https://developer.android.com/reference/kotlin/androidx/annotation/IntRange(from = 1) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The seek forward increment, in milliseconds. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder!` | This builder. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | If `seekForwardIncrementMs` is non-positive. |
| `https://developer.android.com/reference/java/lang/IllegalStateException.html` | If `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder#build()` has already been called. |

### setTrackSelector

```
@CanIgnoreReturnValue
fun setTrackSelector(trackSelector: CastTrackSelector!): RemoteCastPlayer.Builder!
```

Sets the `https://developer.android.com/reference/kotlin/androidx/media3/cast/CastTrackSelector` that will be used by the player to handle `https://developer.android.com/reference/kotlin/androidx/media3/common/TrackSelectionParameters`.

Calling this setter enables `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#COMMAND_SET_TRACK_SELECTION_PARAMETERS()` for the created `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer`.

The provided `https://developer.android.com/reference/kotlin/androidx/media3/cast/CastTrackSelector` must take care of all options in `https://developer.android.com/reference/kotlin/androidx/media3/common/TrackSelectionParameters` that the application uses.

| Parameters |
|---|---|
| `trackSelector: https://developer.android.com/reference/kotlin/androidx/media3/cast/CastTrackSelector!` | A `https://developer.android.com/reference/kotlin/androidx/media3/cast/CastTrackSelector`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder!` | This builder. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException.html` | If `https://developer.android.com/reference/kotlin/androidx/media3/cast/RemoteCastPlayer.Builder#build()` has already been called. |