# FakeTrackSelector.FakeTrackSelectionFactory

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

*** ** * ** ***

Kotlin \|[Java](https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackSelector.FakeTrackSelectionFactory "View this page in Java")


```
class FakeTrackSelector.FakeTrackSelectionFactory : ExoTrackSelection.Factory
```

<br />

*** ** * ** ***

A factory for the [androidx.media3.test.utils.FakeTrackSelection](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeTrackSelection) instances requested by the [FakeTrackSelector](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeTrackSelector).

## Summary

|                                                                                                                                        ### Public constructors                                                                                                                                         |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [FakeTrackSelectionFactory](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeTrackSelector.FakeTrackSelectionFactory#FakeTrackSelectionFactory(boolean))`(mayReuseTrackSelection: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`)` |

|                                                                                                 ### Public functions                                                                                                  |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<`[ExoTrackSelection](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection)`!>!` | [createTrackSelections](https://developer.android.com/reference/kotlin/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))`(` ` definitions: `[Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<@`[NullableType](https://developer.android.com/reference/kotlin/androidx/media3/common/util/NullableType)` `[ExoTrackSelection.Definition](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition)`!>!,` ` bandwidthMeter: `[BandwidthMeter](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/BandwidthMeter)`!,` ` mediaPeriodId: `[MediaSource.MediaPeriodId](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId)`!,` ` timeline: `[Timeline](https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline)`!` `)` Creates track selections for the provided [Definitions](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition). |

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

## Public constructors

### FakeTrackSelectionFactory

```
FakeTrackSelectionFactory(mayReuseTrackSelection: Boolean)
```  

## Public functions

### createTrackSelections

```
fun createTrackSelections(
    definitions: Array<@NullableType ExoTrackSelection.Definition!>!,
    bandwidthMeter: BandwidthMeter!,
    mediaPeriodId: MediaSource.MediaPeriodId!,
    timeline: Timeline!
): Array<ExoTrackSelection!>!
```

Creates track selections for the provided [Definitions](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition).

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

|                                                                                                                                                                              Parameters                                                                                                                                                                               |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `definitions: `[Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<@`[NullableType](https://developer.android.com/reference/kotlin/androidx/media3/common/util/NullableType)` `[ExoTrackSelection.Definition](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition)`!>!` | A [Definition](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition) array. May include null values.              |
| `bandwidthMeter: `[BandwidthMeter](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/BandwidthMeter)`!`                                                                                                                                                                                                                               | A [BandwidthMeter](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/BandwidthMeter) which can be used to select tracks.                          |
| `mediaPeriodId: `[MediaSource.MediaPeriodId](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId)`!`                                                                                                                                                                                                            | The [MediaPeriodId](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId) of the period for which tracks are to be selected. |
| `timeline: `[Timeline](https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline)`!`                                                                                                                                                                                                                                                             | The [Timeline](https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline) holding the period for which tracks are to be selected.                            |

|                                                                                                        Returns                                                                                                        |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|
| [Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<`[ExoTrackSelection](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection)`!>!` | The created selections. Must have the same length as `definitions` and may include null values. |

## Protected functions

### createTrackSelection

```
protected fun createTrackSelection(trackGroup: TrackGroup!): ExoTrackSelection!
```

Creates the [FakeTrackSelection](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeTrackSelection) from a [TrackGroup](https://developer.android.com/reference/kotlin/androidx/media3/common/TrackGroup).