# Tracks

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/Tracks.java+class:androidx.media3.common.Tracks)

*** ** * ** ***

<br />

```
class Tracks
```

<br />

*** ** * ** ***

Information about groups of tracks.

## Summary

| ### Nested types |
|---|
| `class https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks.Group` Information about a single group of tracks, including the underlying `https://developer.android.com/reference/kotlin/androidx/media3/common/TrackGroup`, the level to which each track is supported by the player, and whether any of the tracks are selected. |

| ### Constants |
|---|---|
| `const https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks!` | `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#EMPTY()` Empty tracks. |

| ### Public constructors |
|---|
| `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#Tracks(java.util.List<androidx.media3.common.Tracks.Group>)(groups: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks.Group!>!)` Constructs an instance. |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#containsType(int)(@https://developer.android.com/reference/kotlin/androidx/media3/common/C.TrackType trackType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Returns true if there are tracks of type `trackType`, and false otherwise. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#equals(java.lang.Object)(other: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)` |
| `java-static https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#fromBundle(android.os.Bundle)(bundle: https://developer.android.com/reference/android/os/Bundle.html!)` Restores a `Tracks` from a `https://developer.android.com/reference/android/os/Bundle.html`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#hashCode()()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#isEmpty()()` Returns `true` if there are no tracks, and `false` otherwise. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#isTypeSelected(int)(@https://developer.android.com/reference/kotlin/androidx/media3/common/C.TrackType trackType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Returns true if at least one track of the type `trackType` is selected for playback. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#isTypeSupported(int)(@https://developer.android.com/reference/kotlin/androidx/media3/common/C.TrackType trackType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Returns true if at least one track of type `trackType` is `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks.Group#isTrackSupported(int)`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#isTypeSupported(int,boolean)( @https://developer.android.com/reference/kotlin/androidx/media3/common/C.TrackType trackType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, allowExceedsCapabilities: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Returns true if at least one track of type `trackType` is `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks.Group#isTrackSupported(int,boolean)`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi [isTypeSupportedOrEmpty](https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#isTypeSupportedOrEmpty(int))(@https://developer.android.com/reference/kotlin/androidx/media3/common/C.TrackType trackType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#containsType(int)` and `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#isTypeSupported(int)`. <br /> |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi [isTypeSupportedOrEmpty](https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#isTypeSupportedOrEmpty(int,boolean))( @https://developer.android.com/reference/kotlin/androidx/media3/common/C.TrackType trackType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, allowExceedsCapabilities: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#containsType(int)` and `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#isTypeSupported(int,boolean)`. <br /> |
| `https://developer.android.com/reference/android/os/Bundle.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#toBundle()()` |

| ### Public properties |
|---|---|
| `https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/ImmutableList.html<https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks.Group!>!` | `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#groups()` |

## Constants

### EMPTY

```
const val EMPTY: Tracks!
```

Empty tracks.

## Public constructors

### Tracks

```
@UnstableApi
Tracks(groups: (Mutable)List<Tracks.Group!>!)
```

Constructs an instance.

| Parameters |
|---|---|
| `groups: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks.Group!>!` | The `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks.Group` of tracks. |

## Public functions

### containsType

```
fun containsType(@C.TrackType trackType: Int): Boolean
```

Returns true if there are tracks of type `trackType`, and false otherwise.

### equals

```
fun equals(other: Any?): Boolean
```

### fromBundle

```
@UnstableApi
java-static fun fromBundle(bundle: Bundle!): Tracks!
```

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

### hashCode

```
fun hashCode(): Int
```

### isEmpty

```
fun isEmpty(): Boolean
```

Returns `true` if there are no tracks, and `false` otherwise.

### isTypeSelected

```
fun isTypeSelected(@C.TrackType trackType: Int): Boolean
```

Returns true if at least one track of the type `trackType` is selected for playback.

### isTypeSupported

```
fun isTypeSupported(@C.TrackType trackType: Int): Boolean
```

Returns true if at least one track of type `trackType` is `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks.Group#isTrackSupported(int)`.

### isTypeSupported

```
fun isTypeSupported(
    @C.TrackType trackType: Int,
    allowExceedsCapabilities: Boolean
): Boolean
```

Returns true if at least one track of type `trackType` is `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks.Group#isTrackSupported(int,boolean)`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/media3/common/C.TrackType trackType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The track type to query support for. |
| `allowExceedsCapabilities: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether to consider the track as supported if it has a supported `https://developer.android.com/reference/kotlin/androidx/media3/common/Format#sampleMimeType()`, but otherwise exceeds the advertised capabilities of the device. For example, a video track for which there's a corresponding decoder whose maximum advertised resolution is exceeded by the resolution of the track. Such tracks may be playable in some cases. |

### isTypeSupportedOrEmpty

```
@UnstableApi
fun [isTypeSupportedOrEmpty](https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#isTypeSupportedOrEmpty(int))(@C.TrackType trackType: Int): Boolean
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#containsType(int)` and `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#isTypeSupported(int)`.

### isTypeSupportedOrEmpty

```
@UnstableApi
fun [isTypeSupportedOrEmpty](https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#isTypeSupportedOrEmpty(int,boolean))(
    @C.TrackType trackType: Int,
    allowExceedsCapabilities: Boolean
): Boolean
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#containsType(int)` and `https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks#isTypeSupported(int,boolean)`.

### toBundle

```
@UnstableApi
fun toBundle(): Bundle!
```

## Public properties

### groups

```
val groups: ImmutableList<Tracks.Group!>!
```