# FakeMediaSource.Builder

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

*** ** * ** ***


```
class FakeMediaSource.Builder
```

<br />

*** ** * ** ***

A builder for `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource` instances.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource.Builder#Builder()()` |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource!` | `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource.Builder#build()()` Creates a `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource` from this builder. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource.Builder#setDrmSessionManager(androidx.media3.exoplayer.drm.DrmSessionManager)(drmSessionManager: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/drm/DrmSessionManager!)` Sets the `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/drm/DrmSessionManager`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource.Builder#setFormats(androidx.media3.common.Format,androidx.media3.common.Format...)(format: https://developer.android.com/reference/kotlin/androidx/media3/common/Format!, formats: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/media3/common/Format!>!)` Sets the track formats to use for the `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/TrackGroupArray` when creating `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaPeriod` instances. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource.Builder#setSyncSampleTimesUs(long[])(syncSampleTimesUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html>!)` Sets the timestamps of 'sync samples' in the samples returned from `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource.Builder#setTrackDataFactory(androidx.media3.test.utils.FakeMediaPeriod.TrackDataFactory)`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource.Builder#setTimeline(androidx.media3.common.Timeline)(timeline: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline!)` Sets the `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource.Builder#setTrackDataFactory(androidx.media3.test.utils.FakeMediaPeriod.TrackDataFactory)(trackDataFactory: https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaPeriod.TrackDataFactory!)` Sets the factory used to generate track data. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource.Builder#setTrackGroupArray(androidx.media3.exoplayer.source.TrackGroupArray)(trackGroupArray: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/TrackGroupArray!)` Sets the the `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/TrackGroupArray` used when creating `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaPeriod` instances. |

## Public constructors

### Builder

```
Builder()
```

## Public functions

### build

```
fun build(): FakeMediaSource!
```

Creates a `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource` from this builder.

### setDrmSessionManager

```
@CanIgnoreReturnValue
fun setDrmSessionManager(drmSessionManager: DrmSessionManager!): FakeMediaSource.Builder!
```

Sets the `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/drm/DrmSessionManager`. Defaults to `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/drm/DrmSessionManager#DRM_UNSUPPORTED()`.

### setFormats

```
@CanIgnoreReturnValue
fun setFormats(format: Format!, formats: Array<Format!>!): FakeMediaSource.Builder!
```

Sets the track formats to use for the `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/TrackGroupArray` when creating `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaPeriod` instances.

Setting this overrides any previous call to `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource.Builder#setTrackGroupArray(androidx.media3.exoplayer.source.TrackGroupArray)`.

Defaults to an empty list (i.e. no tracks).

### setSyncSampleTimesUs

```
@CanIgnoreReturnValue
fun setSyncSampleTimesUs(syncSampleTimesUs: LongArray<Long>!): FakeMediaSource.Builder!
```

Sets the timestamps of 'sync samples' in the samples returned from `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource.Builder#setTrackDataFactory(androidx.media3.test.utils.FakeMediaPeriod.TrackDataFactory)`.

### setTimeline

```
@CanIgnoreReturnValue
fun setTimeline(timeline: Timeline!): FakeMediaSource.Builder!
```

Sets the `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline`. Defaults to `null` (in which case it can be set later with `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource#setNewSourceInfo(androidx.media3.common.Timeline)`).

See `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource#getTimeline()`.

### setTrackDataFactory

```
@CanIgnoreReturnValue
fun setTrackDataFactory(trackDataFactory: FakeMediaPeriod.TrackDataFactory!): FakeMediaSource.Builder!
```

Sets the factory used to generate track data. Defaults to `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaPeriod.TrackDataFactory#singleSampleWithTimeUs(long)` based on the first timestamp of a period.

### setTrackGroupArray

```
@CanIgnoreReturnValue
fun setTrackGroupArray(trackGroupArray: TrackGroupArray!): FakeMediaSource.Builder!
```

Sets the the `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/TrackGroupArray` used when creating `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaPeriod` instances.

Setting this overrides any previous call to `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource.Builder#setFormats(androidx.media3.common.Format,androidx.media3.common.Format...)`.

Defaults to an empty array (i.e. no tracks).