# FakeTrackSelector

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)

*** ** * ** ***

<br />

```
@UnstableApi
class FakeTrackSelector : DefaultTrackSelector
```

<br />

|---|---|---|---|---|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html) |||||
| ↳ | [androidx.media3.exoplayer.trackselection.TrackSelector](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/TrackSelector) ||||
|   | ↳ | [androidx.media3.exoplayer.trackselection.MappingTrackSelector](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/MappingTrackSelector) |||
|   |   | ↳ | [androidx.media3.exoplayer.trackselection.DefaultTrackSelector](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector) ||
|   |   |   | ↳ | [androidx.media3.test.utils.FakeTrackSelector](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeTrackSelector) |

*** ** * ** ***

A fake `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/MappingTrackSelector` that returns `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeTrackSelection`s.

## Summary

| ### Nested types |
|---|
| `class https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeTrackSelector.FakeTrackSelectionFactory : https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Factory` A factory for the `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeTrackSelection` instances requested by the `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeTrackSelector`. |

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

| ### Public functions |
|---|---|
| `(https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeTrackSelection!>!` | `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeTrackSelector#getAllTrackSelections()()` Returns list of all `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeTrackSelection`s that this track selector has made so far. |

| ### Protected functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeTrackSelector#selectAllTracks(androidx.media3.exoplayer.trackselection.ExoTrackSelection.Definition[],androidx.media3.exoplayer.trackselection.MappingTrackSelector.MappedTrackInfo,int[][][],int[],androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters)( definitions: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<@https://developer.android.com/reference/kotlin/androidx/media3/common/util/NullableType https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition!>!, mappedTrackInfo: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/MappingTrackSelector.MappedTrackInfo!, @https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererCapabilities.Capabilities rendererFormatSupports: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>!>!>!, @https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport rendererMixedMimeTypeAdaptationSupports: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>!, params: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters! )` Called from `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#selectTracks(androidx.media3.exoplayer.trackselection.MappingTrackSelector.MappedTrackInfo,int[][][],int[],androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.common.Timeline)` to make a track selection for each renderer, prior to overrides and disabled flags being applied. |

### Inherited Constants

From [androidx.media3.exoplayer.trackselection.DefaultTrackSelector](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector) `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#SELECTION_ELIGIBILITY_ADAPTIVE() = 2`

Track is eligible for both a fixed selection and as part of an adaptive selection with multiple tracks.
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#SELECTION_ELIGIBILITY_FIXED() = 1`

Track is eligible for a fixed selection with one track.
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#SELECTION_ELIGIBILITY_NO() = 0`

Track is not eligible for selection.

### Inherited functions

From [androidx.media3.exoplayer.trackselection.DefaultTrackSelector](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector) `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters.Builder!` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#buildUponParameters()()`

Returns a new `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters.Builder` initialized with the current selection parameters.
`java-static https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#getFormatLanguageScore(androidx.media3.common.Format,java.lang.String,boolean)(

format: https://developer.android.com/reference/kotlin/androidx/media3/common/Format!,

language: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?,

allowUndeterminedFormatLanguage: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html

)`

Returns a score for how well a language specified in a `https://developer.android.com/reference/kotlin/androidx/media3/common/Format` matches a given language.
`https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters!` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#getParameters()()`

Returns the current parameters for track selection.
`https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererCapabilities.Listener?` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#getRendererCapabilitiesListener()()`

Returns the `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererCapabilities.Listener` that the concrete instance uses to listen to the renderer capabilities changes.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#init(androidx.media3.exoplayer.trackselection.TrackSelector.InvalidationListener,androidx.media3.exoplayer.upstream.BandwidthMeter)(

listener: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/TrackSelector.InvalidationListener!,

bandwidthMeter: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/BandwidthMeter!

)`

Called by the player to initialize the selector.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#isSetParametersSupported()()`

Returns if this `TrackSelector` supports `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/TrackSelector#setParameters(androidx.media3.common.TrackSelectionParameters)`.
`java-static https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `[isSupported](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#isSupported(int,boolean))(

@https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererCapabilities.Capabilities formatSupport: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,

allowExceedsCapabilities: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html

)`

**This function is deprecated.**

Use `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererCapabilities#isFormatSupported(int,boolean)` instead.

<br />

`java-static https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#normalizeUndeterminedLanguageToNull(java.lang.String)(language: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?)`

Normalizes the input string to null if it does not define a language, or returns it otherwise.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#onParametersActivated(androidx.media3.common.TrackSelectionParameters)(parameters: https://developer.android.com/reference/kotlin/androidx/media3/common/TrackSelectionParameters?)`

Called by the player when track selection parameters become active for subsequent track selections made by `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/TrackSelector#selectTracks(androidx.media3.exoplayer.RendererCapabilities[],androidx.media3.exoplayer.source.TrackGroupArray,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.common.Timeline)`.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#onRendererCapabilitiesChanged(androidx.media3.exoplayer.Renderer)(renderer: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/Renderer!)`

Called when the renderer capabilities are changed.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#release()()`

Called by the player to release the selector.
`https://developer.android.com/reference/android/util/Pair.html<https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition!, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html!>?` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#selectAudioTrack(androidx.media3.exoplayer.trackselection.MappingTrackSelector.MappedTrackInfo,int[][][],int[],androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters)(

mappedTrackInfo: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/MappingTrackSelector.MappedTrackInfo!,

@https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererCapabilities.Capabilities rendererFormatSupports: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>!>!>!,

@https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport rendererMixedMimeTypeAdaptationSupports: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>!,

params: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters!

)`

Called by `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#selectAllTracks(androidx.media3.exoplayer.trackselection.ExoTrackSelection.Definition[],androidx.media3.exoplayer.trackselection.MappingTrackSelector.MappedTrackInfo,int[][][],int[],androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters)` to create a `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition` for an audio track selection.
`https://developer.android.com/reference/android/util/Pair.html<https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition!, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html!>?` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#selectImageTrack(androidx.media3.exoplayer.trackselection.MappingTrackSelector.MappedTrackInfo,int[][][],androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters)(

mappedTrackInfo: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/MappingTrackSelector.MappedTrackInfo!,

@https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererCapabilities.Capabilities rendererFormatSupports: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>!>!>!,

params: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters!

)`

Called by `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#selectAllTracks(androidx.media3.exoplayer.trackselection.ExoTrackSelection.Definition[],androidx.media3.exoplayer.trackselection.MappingTrackSelector.MappedTrackInfo,int[][][],int[],androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters)` to create a `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition` for an image track selection.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#selectMetadataTracks(androidx.media3.exoplayer.trackselection.ExoTrackSelection.Definition[],androidx.media3.exoplayer.trackselection.MappingTrackSelector.MappedTrackInfo,int[][][],androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters)(

definitions: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<@https://developer.android.com/reference/kotlin/androidx/media3/common/util/NullableType https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition!>!,

mappedTrackInfo: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/MappingTrackSelector.MappedTrackInfo!,

@https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererCapabilities.Capabilities rendererFormatSupports: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>!>!>!,

params: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters!

)`

Called by `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#selectAllTracks(androidx.media3.exoplayer.trackselection.ExoTrackSelection.Definition[],androidx.media3.exoplayer.trackselection.MappingTrackSelector.MappedTrackInfo,int[][][],int[],androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters)` to create a `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition` instances for metadata track selections.
`https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition?` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#selectOtherTrack(int,androidx.media3.exoplayer.source.TrackGroupArray,int[][],androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters)(

trackType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,

groups: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/TrackGroupArray!,

@https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererCapabilities.Capabilities formatSupport: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>!>!,

params: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters!

)`

Called by `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#selectAllTracks(androidx.media3.exoplayer.trackselection.ExoTrackSelection.Definition[],androidx.media3.exoplayer.trackselection.MappingTrackSelector.MappedTrackInfo,int[][][],int[],androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters)` to create a `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection` for a renderer whose type is neither video, audio or text.
`https://developer.android.com/reference/android/util/Pair.html<https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition!, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html!>?` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#selectTextTrack(androidx.media3.exoplayer.trackselection.MappingTrackSelector.MappedTrackInfo,int[][][],androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters,java.lang.String)(

mappedTrackInfo: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/MappingTrackSelector.MappedTrackInfo!,

@https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererCapabilities.Capabilities rendererFormatSupports: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>!>!>!,

params: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters!,

selectedAudioLanguage: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?

)`

Called by `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#selectAllTracks(androidx.media3.exoplayer.trackselection.ExoTrackSelection.Definition[],androidx.media3.exoplayer.trackselection.MappingTrackSelector.MappedTrackInfo,int[][][],int[],androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters)` to create a `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition` for a text track selection.
`https://developer.android.com/reference/android/util/Pair.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererConfiguration!>!, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection!>!>!` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#selectTracks(androidx.media3.exoplayer.trackselection.MappingTrackSelector.MappedTrackInfo,int[][][],int[],androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.common.Timeline)(

mappedTrackInfo: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/MappingTrackSelector.MappedTrackInfo!,

@https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererCapabilities.Capabilities rendererFormatSupports: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>!>!>!,

@https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport rendererMixedMimeTypeAdaptationSupport: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>!,

mediaPeriodId: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId!,

timeline: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline!

)`

Given mapped track information, returns a track selection and configuration for each renderer.
`https://developer.android.com/reference/android/util/Pair.html<https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition!, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html!>?` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#selectVideoTrack(androidx.media3.exoplayer.trackselection.MappingTrackSelector.MappedTrackInfo,int[][][],int[],androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters,java.lang.String)(

mappedTrackInfo: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/MappingTrackSelector.MappedTrackInfo!,

@https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererCapabilities.Capabilities rendererFormatSupports: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>!>!>!,

@https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport mixedMimeTypeSupports: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>!,

params: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters!,

selectedAudioLanguage: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?

)`

Called by `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#selectAllTracks(androidx.media3.exoplayer.trackselection.ExoTrackSelection.Definition[],androidx.media3.exoplayer.trackselection.MappingTrackSelector.MappedTrackInfo,int[][][],int[],androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters)` to create a `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition` for a video track selection.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#setAudioAttributes(androidx.media3.common.AudioAttributes)(audioAttributes: https://developer.android.com/reference/kotlin/androidx/media3/common/AudioAttributes!)`

Called by the player to set the `https://developer.android.com/reference/kotlin/androidx/media3/common/AudioAttributes` that will be used for playback.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#setParameters(androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters.Builder)(

parametersBuilder: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters.Builder!

)`

Atomically sets the provided parameters for track selection.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `[setParameters](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#setParameters(androidx.media3.exoplayer.trackselection.DefaultTrackSelector.ParametersBuilder))(

parametersBuilder: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.ParametersBuilder!

)`

**This function is deprecated.**

Use `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#setParameters(androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters.Builder)` instead.

<br />

`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#setParameters(androidx.media3.common.TrackSelectionParameters)(parameters: https://developer.android.com/reference/kotlin/androidx/media3/common/TrackSelectionParameters!)`

Called by the player to provide parameters for track selection.
From [androidx.media3.exoplayer.trackselection.MappingTrackSelector](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/MappingTrackSelector) `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/MappingTrackSelector#onSelectionActivated(java.lang.Object)(info: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)`

Called by the player when a `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/TrackSelectorResult` previously generated by `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/TrackSelector#selectTracks(androidx.media3.exoplayer.RendererCapabilities[],androidx.media3.exoplayer.source.TrackGroupArray,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.common.Timeline)` is activated.
`https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/TrackSelectorResult!` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/MappingTrackSelector#selectTracks(androidx.media3.exoplayer.RendererCapabilities[],androidx.media3.exoplayer.source.TrackGroupArray,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.common.Timeline)(

rendererCapabilities: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererCapabilities!>!,

trackGroups: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/TrackGroupArray!,

periodId: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId!,

timeline: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline!

)`

Called by the player to perform a track selection.
From [androidx.media3.exoplayer.trackselection.TrackSelector](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/TrackSelector) `https://developer.android.com/reference/kotlin/androidx/media3/common/TrackSelectionParameters!` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/TrackSelector#getParameters()()`

Returns the current parameters for track selection.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/TrackSelector#invalidate(androidx.media3.common.TrackSelectionParameters)(parameters: https://developer.android.com/reference/kotlin/androidx/media3/common/TrackSelectionParameters?)`

Calls `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/TrackSelector.InvalidationListener#onTrackSelectionsInvalidated(androidx.media3.common.TrackSelectionParameters)` to invalidate all previously generated track selections.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/TrackSelector#invalidateForRendererCapabilitiesChange(androidx.media3.exoplayer.Renderer)(renderer: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/Renderer!)`

Calls `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/TrackSelector.InvalidationListener#onRendererCapabilitiesChanged(androidx.media3.exoplayer.Renderer)` to invalidate all previously generated track selections because a renderer's capabilities have changed.

### Inherited properties

From [androidx.media3.exoplayer.trackselection.DefaultTrackSelector](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector) `https://developer.android.com/reference/android/content/Context.html?` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#context()` From [androidx.media3.exoplayer.trackselection.MappingTrackSelector](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/MappingTrackSelector) `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/MappingTrackSelector.MappedTrackInfo?` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/MappingTrackSelector#currentMappedTrackInfo()` From [androidx.media3.exoplayer.trackselection.TrackSelector](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/TrackSelector) `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/BandwidthMeter?` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/TrackSelector#bandwidthMeter()`

## Public constructors

### FakeTrackSelector

```
FakeTrackSelector()
```

### FakeTrackSelector

```
FakeTrackSelector(
    fakeTrackSelectionFactory: FakeTrackSelector.FakeTrackSelectionFactory!
)
```

| Parameters |
|---|---|
| `fakeTrackSelectionFactory: https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeTrackSelector.FakeTrackSelectionFactory!` | The `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeTrackSelector.FakeTrackSelectionFactory` used to create the `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeTrackSelection` instances. |

### FakeTrackSelector

```
FakeTrackSelector(mayReuseTrackSelection: Boolean)
```

| Parameters |
|---|---|
| `mayReuseTrackSelection: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether this `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeTrackSelector` will reuse `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection`s during track selection, when it finds previously-selected track selection using the same `https://developer.android.com/reference/kotlin/androidx/media3/common/TrackGroup`. |

## Public functions

### getAllTrackSelections

```
fun getAllTrackSelections(): (Mutable)List<FakeTrackSelection!>!
```

Returns list of all `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeTrackSelection`s that this track selector has made so far.

## Protected functions

### selectAllTracks

```
protected fun selectAllTracks(
    definitions: Array<@NullableType ExoTrackSelection.Definition!>!,
    mappedTrackInfo: MappingTrackSelector.MappedTrackInfo!,
    @RendererCapabilities.Capabilities rendererFormatSupports: Array<Array<IntArray<Int>!>!>!,
    @RendererCapabilities.AdaptiveSupport rendererMixedMimeTypeAdaptationSupports: IntArray<Int>!,
    params: DefaultTrackSelector.Parameters!
): Unit
```

Called from `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#selectTracks(androidx.media3.exoplayer.trackselection.MappingTrackSelector.MappedTrackInfo,int[][][],int[],androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.common.Timeline)` to make a track selection for each renderer, prior to overrides and disabled flags being applied.

The implementation should not account for overrides and disabled flags. Track selections generated by this method will be overridden to account for these properties.

If selection parameters include `https://developer.android.com/reference/kotlin/androidx/media3/common/TrackSelectionParameters#audioOffloadPreferences()` with `https://developer.android.com/reference/kotlin/androidx/media3/common/TrackSelectionParameters.AudioOffloadPreferences#audioOffloadMode()` set to `https://developer.android.com/reference/kotlin/androidx/media3/common/TrackSelectionParameters.AudioOffloadPreferences#AUDIO_OFFLOAD_MODE_REQUIRED()` then only audio tracks will be selected. If no audio track is supported in offload, then no track will be selected.

| Parameters |
|---|---|
| `definitions: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<@https://developer.android.com/reference/kotlin/androidx/media3/common/util/NullableType https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition!>!` | The `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition`s for the renderers to be filled in. A null entry indicates no selection was made. The array may contain existing prepopulated entries from overrides. |
| `mappedTrackInfo: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/MappingTrackSelector.MappedTrackInfo!` | Mapped track information. |
| `@https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererCapabilities.Capabilities rendererFormatSupports: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>!>!>!` | The `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererCapabilities.Capabilities` for each mapped track, indexed by renderer, track group and track (in that order). |
| `@https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport rendererMixedMimeTypeAdaptationSupports: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>!` | The `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport` for mixed MIME type adaptation for the renderer. |
| `params: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters!` | The parameters to use for the track selection. |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ExoPlaybackException` | If an error occurs while selecting the tracks. |