# FakeTrackSelector.FakeTrackSelectionFactory

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/FakeTrackSelector.java+class:androidx.media3.test.utils.FakeTrackSelector.FakeTrackSelectionFactory)

*** ** * ** ***


```
public class FakeTrackSelector.FakeTrackSelectionFactory implements ExoTrackSelection.Factory
```

<br />

*** ** * ** ***

A factory for the `https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackSelection` instances requested by the `https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackSelector`.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackSelector.FakeTrackSelectionFactory#FakeTrackSelectionFactory(boolean)(boolean mayReuseTrackSelection)` |

| ### Public methods |
|---|---|
| `final ExoTrackSelection[]` | `https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackSelector.FakeTrackSelectionFactory#createTrackSelections(androidx.media3.exoplayer.trackselection.ExoTrackSelection.Definition[],androidx.media3.exoplayer.upstream.BandwidthMeter,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.common.Timeline)( ExoTrackSelection.Definition[] definitions, https://developer.android.com/reference/androidx/media3/exoplayer/upstream/BandwidthMeter bandwidthMeter, https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId mediaPeriodId, https://developer.android.com/reference/androidx/media3/common/Timeline timeline )` Creates track selections for the provided `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition`. |

| ### Protected methods |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/ExoTrackSelection` | `https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackSelector.FakeTrackSelectionFactory#createTrackSelection(androidx.media3.common.TrackGroup)(https://developer.android.com/reference/androidx/media3/common/TrackGroup trackGroup)` Creates the `https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackSelection` from a `https://developer.android.com/reference/androidx/media3/common/TrackGroup`. |

## Public constructors

### FakeTrackSelectionFactory

```
public FakeTrackSelectionFactory(boolean mayReuseTrackSelection)
```

## Public methods

### createTrackSelections

```
public final ExoTrackSelection[] createTrackSelections(
    ExoTrackSelection.Definition[] definitions,
    BandwidthMeter bandwidthMeter,
    MediaSource.MediaPeriodId mediaPeriodId,
    Timeline timeline
)
```

Creates track selections for the provided `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition`.

Implementations that create at most one adaptive track selection may use `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/TrackSelectionUtil#createTrackSelectionsForDefinitions(androidx.media3.exoplayer.trackselection.ExoTrackSelection.Definition[],androidx.media3.exoplayer.trackselection.TrackSelectionUtil.AdaptiveTrackSelectionFactory)`.

| Parameters |
|---|---|
| `ExoTrackSelection.Definition[] definitions` | A `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition` array. May include null values. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/BandwidthMeter bandwidthMeter` | A `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/BandwidthMeter` which can be used to select tracks. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId mediaPeriodId` | The `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId` of the period for which tracks are to be selected. |
| `https://developer.android.com/reference/androidx/media3/common/Timeline timeline` | The `https://developer.android.com/reference/androidx/media3/common/Timeline` holding the period for which tracks are to be selected. |

| Returns |
|---|---|
| `ExoTrackSelection[]` | The created selections. Must have the same length as `definitions` and may include null values. |

## Protected methods

### createTrackSelection

```
protected ExoTrackSelection createTrackSelection(TrackGroup trackGroup)
```

Creates the `https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackSelection` from a `https://developer.android.com/reference/androidx/media3/common/TrackGroup`.