# 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)

*** ** * ** ***


```
public class FakeMediaSource.Builder
```

<br />

*** ** * ** ***

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

## Summary

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

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

## Public constructors

### Builder

```
public Builder()
```

## Public methods

### build

```
public FakeMediaSource build()
```

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

### setDrmSessionManager

```
@CanIgnoreReturnValue
public FakeMediaSource.Builder setDrmSessionManager(DrmSessionManager drmSessionManager)
```

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

### setFormats

```
@CanIgnoreReturnValue
public FakeMediaSource.Builder setFormats(Format format, Format[] formats)
```

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

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

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

### setSyncSampleTimesUs

```
@CanIgnoreReturnValue
public FakeMediaSource.Builder setSyncSampleTimesUs(long[] syncSampleTimesUs)
```

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

### setTimeline

```
@CanIgnoreReturnValue
public FakeMediaSource.Builder setTimeline(Timeline timeline)
```

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

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

### setTrackDataFactory

```
@CanIgnoreReturnValue
public FakeMediaSource.Builder setTrackDataFactory(FakeMediaPeriod.TrackDataFactory trackDataFactory)
```

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

### setTrackGroupArray

```
@CanIgnoreReturnValue
public FakeMediaSource.Builder setTrackGroupArray(TrackGroupArray trackGroupArray)
```

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

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

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