# TrackSelectionOverride

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

*** ** * ** ***

<br />

```
public final class TrackSelectionOverride
```

<br />

*** ** * ** ***

A track selection override, consisting of a `https://developer.android.com/reference/androidx/media3/common/TrackGroup` and the indices of the tracks within the group that should be selected.

A track selection override is applied during playback if the media being played contains a `https://developer.android.com/reference/androidx/media3/common/TrackGroup` equal to the one in the override. If a `https://developer.android.com/reference/androidx/media3/common/TrackSelectionParameters` contains only one override of a given track type that applies to the media, this override will be used to control the track selection for that type. If multiple overrides of a given track type apply then the player will apply only one of them.

If `https://developer.android.com/reference/androidx/media3/common/TrackSelectionOverride#trackIndices()` is empty then the override specifies that no tracks should be selected. Adding an empty override to a `https://developer.android.com/reference/androidx/media3/common/TrackSelectionParameters` is similar to `https://developer.android.com/reference/androidx/media3/common/TrackSelectionParameters.Builder#setTrackTypeDisabled(int,boolean)`, except that an empty override will only be applied if the media being played contains a `https://developer.android.com/reference/androidx/media3/common/TrackGroup` equal to the one in the override. Conversely, disabling a track type will prevent selection of tracks of that type for all media.

## Summary

| ### Public fields |
|---|---|
| `final https://developer.android.com/reference/androidx/media3/common/TrackGroup` | `https://developer.android.com/reference/androidx/media3/common/TrackSelectionOverride#mediaTrackGroup()` The media `https://developer.android.com/reference/androidx/media3/common/TrackGroup` whose `https://developer.android.com/reference/androidx/media3/common/TrackSelectionOverride#trackIndices()` are forced to be selected. |
| `final https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/ImmutableList.html<https://developer.android.com/reference/java/lang/Integer.html>` | `https://developer.android.com/reference/androidx/media3/common/TrackSelectionOverride#trackIndices()` The indices of tracks in a `https://developer.android.com/reference/androidx/media3/common/TrackGroup` to be selected. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/common/TrackSelectionOverride#TrackSelectionOverride(androidx.media3.common.TrackGroup,int)(https://developer.android.com/reference/androidx/media3/common/TrackGroup mediaTrackGroup, int trackIndex)` Constructs an instance to force `trackIndex` in `trackGroup` to be selected. |
| `https://developer.android.com/reference/androidx/media3/common/TrackSelectionOverride#TrackSelectionOverride(androidx.media3.common.TrackGroup,java.util.List<java.lang.Integer>)( https://developer.android.com/reference/androidx/media3/common/TrackGroup mediaTrackGroup, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/Integer.html> trackIndices )` Constructs an instance to force `trackIndices` in `trackGroup` to be selected. |

| ### Public methods |
|---|---|
| `boolean` | `https://developer.android.com/reference/androidx/media3/common/TrackSelectionOverride#equals(java.lang.Object)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/Object.html obj)` |
| `static https://developer.android.com/reference/androidx/media3/common/TrackSelectionOverride` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/common/TrackSelectionOverride#fromBundle(android.os.Bundle)(https://developer.android.com/reference/android/os/Bundle.html bundle)` Restores a `TrackSelectionOverride` from a `https://developer.android.com/reference/android/os/Bundle.html`. |
| `int` | `@https://developer.android.com/reference/androidx/media3/common/C.TrackType https://developer.android.com/reference/androidx/media3/common/TrackSelectionOverride#getType()()` Returns the `https://developer.android.com/reference/androidx/media3/common/C.TrackType` of the overridden track group. |
| `int` | `https://developer.android.com/reference/androidx/media3/common/TrackSelectionOverride#hashCode()()` |
| `https://developer.android.com/reference/android/os/Bundle.html` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/common/TrackSelectionOverride#toBundle()()` |

## Public fields

### mediaTrackGroup

```
public final TrackGroup mediaTrackGroup
```

The media `https://developer.android.com/reference/androidx/media3/common/TrackGroup` whose `https://developer.android.com/reference/androidx/media3/common/TrackSelectionOverride#trackIndices()` are forced to be selected.

### trackIndices

```
public final ImmutableList<Integer> trackIndices
```

The indices of tracks in a `https://developer.android.com/reference/androidx/media3/common/TrackGroup` to be selected.

## Public constructors

### TrackSelectionOverride

```
public TrackSelectionOverride(TrackGroup mediaTrackGroup, int trackIndex)
```

Constructs an instance to force `trackIndex` in `trackGroup` to be selected.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/TrackGroup mediaTrackGroup` | The media `https://developer.android.com/reference/androidx/media3/common/TrackGroup` for which to override the track selection. |
| `int trackIndex` | The index of the track in the `https://developer.android.com/reference/androidx/media3/common/TrackGroup` to select. |

### TrackSelectionOverride

```
public TrackSelectionOverride(
    TrackGroup mediaTrackGroup,
    List<Integer> trackIndices
)
```

Constructs an instance to force `trackIndices` in `trackGroup` to be selected.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/TrackGroup mediaTrackGroup` | The media `https://developer.android.com/reference/androidx/media3/common/TrackGroup` for which to override the track selection. |
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/Integer.html> trackIndices` | The indices of the tracks in the `https://developer.android.com/reference/androidx/media3/common/TrackGroup` to select. |

## Public methods

### equals

```
public boolean equals(@Nullable Object obj)
```

### fromBundle

```
@UnstableApi
public static TrackSelectionOverride fromBundle(Bundle bundle)
```

Restores a `TrackSelectionOverride` from a `https://developer.android.com/reference/android/os/Bundle.html`.

### getType

```
@C.TrackType
public int getType()
```

Returns the `https://developer.android.com/reference/androidx/media3/common/C.TrackType` of the overridden track group.

### hashCode

```
public int hashCode()
```

### toBundle

```
@UnstableApi
public Bundle toBundle()
```