# TrackSelectionState

Artifact: [androidx.media3:media3-ui-compose](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/ui/compose/state/TrackSelectionState.kt+class:androidx.media3.ui.compose.state.TrackSelectionState)


```
@UnstableApi
class TrackSelectionState
```

<br />

*** ** * ** ***

A state object that manages the track selection for a specific `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionState#trackType()`.

Availability of track selection can be determined by checking `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionState#canSetTrackSelectionParameters()` and whether `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionState#selectionOptions()` has sufficient options for the desired UI.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionState#TrackSelectionState(androidx.media3.ui.compose.state.TrackSelectionParametersState,kotlin.Int,kotlin.Int,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean)( internalTrackSelectionParametersState: https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionParametersState, trackType: @https://developer.android.com/reference/kotlin/androidx/media3/common/C.TrackType https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, trackFilters: @https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackFilter https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, hasOffOption: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, hasAutoOption: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, hasOnOption: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionState#selectOption(androidx.media3.ui.compose.state.TrackSelectionOption)(option: https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionOption?)` Selects an option for this track type. |

| ### Public properties |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionState#canSetTrackSelectionParameters()` Whether `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#COMMAND_SET_TRACK_SELECTION_PARAMETERS()` is available on the player. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionState#hasAutoOption()` Whether the UI includes an "Auto" option. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionState#hasOffOption()` Whether the UI includes an "Off" option. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionState#hasOnOption()` Whether the UI includes explicit track options. |
| `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionOption?` | `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionState#selectedOption()` The selected option, or null if no option is selected. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionOption>` | `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionState#selectionOptions()` Available `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionOption`s based on `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionState#trackFilters()` and options. |
| `@https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackFilter https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionState#trackFilters()` The bitmask of filters supported for selecting tracks of this type. |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/TrackSelectionParameters` | `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionState#trackSelectionParameters()` The current `https://developer.android.com/reference/kotlin/androidx/media3/common/TrackSelectionParameters` acting on the player. |
| `@https://developer.android.com/reference/kotlin/androidx/media3/common/C.TrackType https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionState#trackType()` The type of track this state manages (e.g., `https://developer.android.com/reference/kotlin/androidx/media3/common/C#TRACK_TYPE_VIDEO()`). |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks` | `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionState#tracks()` The current `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks` available in the player. |

## Public constructors

### TrackSelectionState

```
TrackSelectionState(
    internalTrackSelectionParametersState: TrackSelectionParametersState,
    trackType: @C.TrackType Int,
    trackFilters: @TrackFilter Int = 0,
    hasOffOption: Boolean = false,
    hasAutoOption: Boolean = false,
    hasOnOption: Boolean = true
)
```

## Public functions

### selectOption

```
@UnstableApi
fun selectOption(option: TrackSelectionOption?): Unit
```

Selects an option for this track type.

| Parameters |
|---|---|
| `option: https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionOption?` | The `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionOption` to select, or `null` to clear the selection (treated as `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/package-summary#TRACK_SELECTION_AUTO()`). |

## Public properties

### canSetTrackSelectionParameters

```
val canSetTrackSelectionParameters: Boolean
```

Whether `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#COMMAND_SET_TRACK_SELECTION_PARAMETERS()` is available on the player.

### hasAutoOption

```
val hasAutoOption: Boolean
```

Whether the UI includes an "Auto" option.

### hasOffOption

```
val hasOffOption: Boolean
```

Whether the UI includes an "Off" option.

### hasOnOption

```
val hasOnOption: Boolean
```

Whether the UI includes explicit track options.

### selectedOption

```
val selectedOption: TrackSelectionOption?
```

The selected option, or null if no option is selected.

### selectionOptions

```
val selectionOptions: List<TrackSelectionOption>
```

Available `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionOption`s based on `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/TrackSelectionState#trackFilters()` and options.

### trackFilters

```
val trackFilters: @TrackFilter Int
```

The bitmask of filters supported for selecting tracks of this type.

### trackSelectionParameters

```
val trackSelectionParameters: TrackSelectionParameters
```

The current `https://developer.android.com/reference/kotlin/androidx/media3/common/TrackSelectionParameters` acting on the player.

### trackType

```
val trackType: @C.TrackType Int
```

The type of track this state manages (e.g., `https://developer.android.com/reference/kotlin/androidx/media3/common/C#TRACK_TYPE_VIDEO()`).

### tracks

```
val tracks: Tracks
```

The current `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks` available in the player.