# Track.Builder

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

*** ** * ** ***


```
public final class Track.Builder
```

<br />

*** ** * ** ***

Builder for `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track`.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder#Builder()()` |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track` | `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder#build()()` Builds a new `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track` instance. |
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder#setChapterTrackId(int)(int chapterTrackId)` Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#chapterTrackId()`. |
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder#setDurationUs(long)(long durationUs)` Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#durationUs()`. |
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder#setEditListDurations(com.google.common.primitives.ImmutableLongArray)(@https://developer.android.com/reference/androidx/annotation/Nullable https://guava.dev/releases/snapshot-android/api/docs/com/google/common/primitives/ImmutableLongArray.html editListDurations)` Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#editListDurations()`. |
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder#setEditListMediaTimes(com.google.common.primitives.ImmutableLongArray)(@https://developer.android.com/reference/androidx/annotation/Nullable https://guava.dev/releases/snapshot-android/api/docs/com/google/common/primitives/ImmutableLongArray.html editListMediaTimes)` Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#editListMediaTimes()`. |
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder#setFormat(androidx.media3.common.Format)(https://developer.android.com/reference/androidx/media3/common/Format format)` Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#format()`. |
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder#setId(int)(int id)` Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#id()`. |
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder#setMediaDurationUs(long)(long mediaDurationUs)` Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#mediaDurationUs()`. |
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder#setMovieTimescale(long)(long movieTimescale)` Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#movieTimescale()`. |
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder#setNalUnitLengthFieldLength(int)(int nalUnitLengthFieldLength)` Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#nalUnitLengthFieldLength()`. |
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder#setSampleDescriptionEncryptionBoxes(androidx.media3.extractor.mp4.TrackEncryptionBox[])( @https://developer.android.com/reference/androidx/annotation/Nullable TrackEncryptionBox[] sampleDescriptionEncryptionBoxes )` Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#sampleDescriptionEncryptionBoxes()`. |
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder#setSampleTransformation(int)(@https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Transformation int sampleTransformation)` Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#sampleTransformation()`. |
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder#setShouldBeExposed(boolean)(boolean shouldBeExposed)` Sets whether the track should be exposed to the player. |
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder#setTimescale(long)(long timescale)` Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#timescale()`. |
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder#setType(int)(@https://developer.android.com/reference/androidx/media3/common/C.TrackType int type)` Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#type()`. |

## Public constructors

### Builder

```
public Builder()
```

## Public methods

### build

```
public Track build()
```

Builds a new `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track` instance.

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/NullPointerException.html` | if `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder#setFormat(androidx.media3.common.Format)` has not been called. |

### setChapterTrackId

```
@CanIgnoreReturnValue
public Track.Builder setChapterTrackId(int chapterTrackId)
```

Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#chapterTrackId()`. The default value is `https://developer.android.com/reference/androidx/media3/common/C#INDEX_UNSET()`.

| Parameters |
|---|---|
| `int chapterTrackId` | The `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#chapterTrackId()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | This builder. |

### setDurationUs

```
@CanIgnoreReturnValue
public Track.Builder setDurationUs(long durationUs)
```

Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#durationUs()`. The default value is `https://developer.android.com/reference/androidx/media3/common/C#TIME_UNSET()`.

| Parameters |
|---|---|
| `long durationUs` | The `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#durationUs()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | This builder. |

### setEditListDurations

```
@CanIgnoreReturnValue
public Track.Builder setEditListDurations(@Nullable ImmutableLongArray editListDurations)
```

Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#editListDurations()`. The default value is `null`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://guava.dev/releases/snapshot-android/api/docs/com/google/common/primitives/ImmutableLongArray.html editListDurations` | The `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#editListDurations()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | This builder. |

### setEditListMediaTimes

```
@CanIgnoreReturnValue
public Track.Builder setEditListMediaTimes(@Nullable ImmutableLongArray editListMediaTimes)
```

Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#editListMediaTimes()`. The default value is `null`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://guava.dev/releases/snapshot-android/api/docs/com/google/common/primitives/ImmutableLongArray.html editListMediaTimes` | The `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#editListMediaTimes()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | This builder. |

### setFormat

```
@CanIgnoreReturnValue
public Track.Builder setFormat(Format format)
```

Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#format()`. This is a required value.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Format format` | The `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#format()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | This builder. |

### setId

```
@CanIgnoreReturnValue
public Track.Builder setId(int id)
```

Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#id()`. The default value is `0`.

| Parameters |
|---|---|
| `int id` | The `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#id()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | This builder. |

### setMediaDurationUs

```
@CanIgnoreReturnValue
public Track.Builder setMediaDurationUs(long mediaDurationUs)
```

Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#mediaDurationUs()`. The default value is `https://developer.android.com/reference/androidx/media3/common/C#TIME_UNSET()`.

| Parameters |
|---|---|
| `long mediaDurationUs` | The `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#mediaDurationUs()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | This builder. |

### setMovieTimescale

```
@CanIgnoreReturnValue
public Track.Builder setMovieTimescale(long movieTimescale)
```

Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#movieTimescale()`. The default value is `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#TIMESCALE_UNSET()`.

| Parameters |
|---|---|
| `long movieTimescale` | The `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#movieTimescale()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | This builder. |

### setNalUnitLengthFieldLength

```
@CanIgnoreReturnValue
public Track.Builder setNalUnitLengthFieldLength(int nalUnitLengthFieldLength)
```

Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#nalUnitLengthFieldLength()`. The default value is `0`.

| Parameters |
|---|---|
| `int nalUnitLengthFieldLength` | The `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#nalUnitLengthFieldLength()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | This builder. |

### setSampleDescriptionEncryptionBoxes

```
@CanIgnoreReturnValue
public Track.Builder setSampleDescriptionEncryptionBoxes(
    @Nullable TrackEncryptionBox[] sampleDescriptionEncryptionBoxes
)
```

Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#sampleDescriptionEncryptionBoxes()`. The default value is `null`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable TrackEncryptionBox[] sampleDescriptionEncryptionBoxes` | The `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#sampleDescriptionEncryptionBoxes()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | This builder. |

### setSampleTransformation

```
@CanIgnoreReturnValue
public Track.Builder setSampleTransformation(@Track.Transformation int sampleTransformation)
```

Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#sampleTransformation()`. The default value is `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#TRANSFORMATION_NONE()`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Transformation int sampleTransformation` | The `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#sampleTransformation()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | This builder. |

### setShouldBeExposed

```
@CanIgnoreReturnValue
public Track.Builder setShouldBeExposed(boolean shouldBeExposed)
```

Sets whether the track should be exposed to the player. The default value is `true`.

| Parameters |
|---|---|
| `boolean shouldBeExposed` | The `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#shouldBeExposed()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | This builder. |

### setTimescale

```
@CanIgnoreReturnValue
public Track.Builder setTimescale(long timescale)
```

Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#timescale()`. The default value is `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#TIMESCALE_UNSET()`.

| Parameters |
|---|---|
| `long timescale` | The `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#timescale()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | This builder. |

### setType

```
@CanIgnoreReturnValue
public Track.Builder setType(@C.TrackType int type)
```

Sets `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#type()`. The default value is `https://developer.android.com/reference/androidx/media3/common/C#TRACK_TYPE_UNKNOWN()`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/media3/common/C.TrackType int type` | The `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track#type()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/extractor/mp4/Track.Builder` | This builder. |