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

*** ** * ** ***


```
@UnstableApi
public class FakeTrackSelector extends DefaultTrackSelector
```

<br />

|---|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) |||||
| ↳ | [androidx.media3.exoplayer.trackselection.TrackSelector](https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/TrackSelector) ||||
|   | ↳ | [androidx.media3.exoplayer.trackselection.MappingTrackSelector](https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/MappingTrackSelector) |||
|   |   | ↳ | [androidx.media3.exoplayer.trackselection.DefaultTrackSelector](https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector) ||
|   |   |   | ↳ | [androidx.media3.test.utils.FakeTrackSelector](https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackSelector) |

*** ** * ** ***

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

## Summary

| ### Nested types |
|---|
| `public class https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackSelector.FakeTrackSelectionFactory implements https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Factory` 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`. |

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

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackSelection>` | `https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackSelector#getAllTrackSelections()()` Returns list of all `https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackSelection`s that this track selector has made so far. |

| ### Protected methods |
|---|---|
| `void` | `https://developer.android.com/reference/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)( ExoTrackSelection.Definition[] definitions, https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/MappingTrackSelector.MappedTrackInfo mappedTrackInfo, @https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities int[][][] rendererFormatSupports, @https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport int[] rendererMixedMimeTypeAdaptationSupports, https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters params )` Called from `https://developer.android.com/reference/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/androidx/media3/exoplayer/trackselection/DefaultTrackSelector) |---|---| | `static final int` | `https://developer.android.com/reference/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. | | `static final int` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#SELECTION_ELIGIBILITY_FIXED() = 1` Track is eligible for a fixed selection with one track. | | `static final int` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#SELECTION_ELIGIBILITY_NO() = 0` Track is not eligible for selection. | |

| ### Inherited fields |
|---|
| From [androidx.media3.exoplayer.trackselection.DefaultTrackSelector](https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector) |---|---| | `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/content/Context.html` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#context()` | |
| From [androidx.media3.exoplayer.trackselection.MappingTrackSelector](https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/MappingTrackSelector) |---|---| | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/MappingTrackSelector.MappedTrackInfo` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/MappingTrackSelector#currentMappedTrackInfo()` | |
| From [androidx.media3.exoplayer.trackselection.TrackSelector](https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/TrackSelector) |---|---| | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/upstream/BandwidthMeter` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/TrackSelector#bandwidthMeter()` | |

| ### Inherited methods |
|---|
| From [androidx.media3.exoplayer.trackselection.DefaultTrackSelector](https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector) |---|---| | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters.Builder` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#buildUponParameters()()` Returns a new `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters.Builder` initialized with the current selection parameters. | | `static int` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#getFormatLanguageScore(androidx.media3.common.Format,java.lang.String,boolean)( https://developer.android.com/reference/androidx/media3/common/Format format, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html language, boolean allowUndeterminedFormatLanguage )` Returns a score for how well a language specified in a `https://developer.android.com/reference/androidx/media3/common/Format` matches a given language. | | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#getParameters()()` Returns the current parameters for track selection. | | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Listener` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#getRendererCapabilitiesListener()()` Returns the `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Listener` that the concrete instance uses to listen to the renderer capabilities changes. | | `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#init(androidx.media3.exoplayer.trackselection.TrackSelector.InvalidationListener,androidx.media3.exoplayer.upstream.BandwidthMeter)( https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/TrackSelector.InvalidationListener listener, https://developer.android.com/reference/androidx/media3/exoplayer/upstream/BandwidthMeter bandwidthMeter )` Called by the player to initialize the selector. | | `boolean` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#isSetParametersSupported()()` Returns if this `TrackSelector` supports `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/TrackSelector#setParameters(androidx.media3.common.TrackSelectionParameters)`. | | `static boolean` | `[isSupported](https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#isSupported(int,boolean))( @https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities int formatSupport, boolean allowExceedsCapabilities )` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#isFormatSupported(int,boolean)` instead. <br /> | | `static @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#normalizeUndeterminedLanguageToNull(java.lang.String)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html language)` Normalizes the input string to null if it does not define a language, or returns it otherwise. | | `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#onParametersActivated(androidx.media3.common.TrackSelectionParameters)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/TrackSelectionParameters parameters)` Called by the player when track selection parameters become active for subsequent track selections made by `https://developer.android.com/reference/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)`. | | `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#onRendererCapabilitiesChanged(androidx.media3.exoplayer.Renderer)(https://developer.android.com/reference/androidx/media3/exoplayer/Renderer renderer)` Called when the renderer capabilities are changed. | | `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#release()()` Called by the player to release the selector. | | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/util/Pair.html<https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition, https://developer.android.com/reference/java/lang/Integer.html>` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#selectAudioTrack(androidx.media3.exoplayer.trackselection.MappingTrackSelector.MappedTrackInfo,int[][][],int[],androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters)( https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/MappingTrackSelector.MappedTrackInfo mappedTrackInfo, @https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities int[][][] rendererFormatSupports, @https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport int[] rendererMixedMimeTypeAdaptationSupports, https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters params )` Called by `https://developer.android.com/reference/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/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition` for an audio track selection. | | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/util/Pair.html<https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition, https://developer.android.com/reference/java/lang/Integer.html>` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#selectImageTrack(androidx.media3.exoplayer.trackselection.MappingTrackSelector.MappedTrackInfo,int[][][],androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters)( https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/MappingTrackSelector.MappedTrackInfo mappedTrackInfo, @https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities int[][][] rendererFormatSupports, https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters params )` Called by `https://developer.android.com/reference/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/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition` for an image track selection. | | `void` | `https://developer.android.com/reference/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)( ExoTrackSelection.Definition[] definitions, https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/MappingTrackSelector.MappedTrackInfo mappedTrackInfo, @https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities int[][][] rendererFormatSupports, https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters params )` Called by `https://developer.android.com/reference/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/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition` instances for metadata track selections. | | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#selectOtherTrack(int,androidx.media3.exoplayer.source.TrackGroupArray,int[][],androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters)( int trackType, https://developer.android.com/reference/androidx/media3/exoplayer/source/TrackGroupArray groups, @https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities int[][] formatSupport, https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters params )` Called by `https://developer.android.com/reference/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/androidx/media3/exoplayer/trackselection/ExoTrackSelection` for a renderer whose type is neither video, audio or text. | | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/util/Pair.html<https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition, https://developer.android.com/reference/java/lang/Integer.html>` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#selectTextTrack(androidx.media3.exoplayer.trackselection.MappingTrackSelector.MappedTrackInfo,int[][][],androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters,java.lang.String)( https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/MappingTrackSelector.MappedTrackInfo mappedTrackInfo, @https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities int[][][] rendererFormatSupports, https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters params, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html selectedAudioLanguage )` Called by `https://developer.android.com/reference/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/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition` for a text track selection. | | `final https://developer.android.com/reference/android/util/Pair.html<RendererConfiguration[], ExoTrackSelection[]>` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#selectTracks(androidx.media3.exoplayer.trackselection.MappingTrackSelector.MappedTrackInfo,int[][][],int[],androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.common.Timeline)( https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/MappingTrackSelector.MappedTrackInfo mappedTrackInfo, @https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities int[][][] rendererFormatSupports, @https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport int[] rendererMixedMimeTypeAdaptationSupport, https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId mediaPeriodId, https://developer.android.com/reference/androidx/media3/common/Timeline timeline )` Given mapped track information, returns a track selection and configuration for each renderer. | | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/util/Pair.html<https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition, https://developer.android.com/reference/java/lang/Integer.html>` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#selectVideoTrack(androidx.media3.exoplayer.trackselection.MappingTrackSelector.MappedTrackInfo,int[][][],int[],androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters,java.lang.String)( https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/MappingTrackSelector.MappedTrackInfo mappedTrackInfo, @https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities int[][][] rendererFormatSupports, @https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport int[] mixedMimeTypeSupports, https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters params, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html selectedAudioLanguage )` Called by `https://developer.android.com/reference/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/androidx/media3/exoplayer/trackselection/ExoTrackSelection.Definition` for a video track selection. | | `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#setAudioAttributes(androidx.media3.common.AudioAttributes)(https://developer.android.com/reference/androidx/media3/common/AudioAttributes audioAttributes)` Called by the player to set the `https://developer.android.com/reference/androidx/media3/common/AudioAttributes` that will be used for playback. | | `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#setParameters(androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters.Builder)( https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters.Builder parametersBuilder )` Atomically sets the provided parameters for track selection. | | `void` | `[setParameters](https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#setParameters(androidx.media3.exoplayer.trackselection.DefaultTrackSelector.ParametersBuilder))( https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.ParametersBuilder parametersBuilder )` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#setParameters(androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters.Builder)` instead. <br /> | | `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector#setParameters(androidx.media3.common.TrackSelectionParameters)(https://developer.android.com/reference/androidx/media3/common/TrackSelectionParameters parameters)` Called by the player to provide parameters for track selection. | |
| From [androidx.media3.exoplayer.trackselection.MappingTrackSelector](https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/MappingTrackSelector) |---|---| | `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/MappingTrackSelector.MappedTrackInfo` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/MappingTrackSelector#getCurrentMappedTrackInfo()()` Returns the mapping information for the currently active track selection, or null if no selection is currently active. | | `final void` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/MappingTrackSelector#onSelectionActivated(java.lang.Object)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/Object.html info)` Called by the player when a `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/TrackSelectorResult` previously generated by `https://developer.android.com/reference/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. | | `final https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/TrackSelectorResult` | `https://developer.android.com/reference/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[] rendererCapabilities, https://developer.android.com/reference/androidx/media3/exoplayer/source/TrackGroupArray trackGroups, https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId periodId, https://developer.android.com/reference/androidx/media3/common/Timeline timeline )` Called by the player to perform a track selection. | |
| From [androidx.media3.exoplayer.trackselection.TrackSelector](https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/TrackSelector) |---|---| | `final https://developer.android.com/reference/androidx/media3/exoplayer/upstream/BandwidthMeter` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/TrackSelector#getBandwidthMeter()()` Returns a bandwidth meter which can be used by track selections to select tracks. | | `https://developer.android.com/reference/androidx/media3/common/TrackSelectionParameters` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/TrackSelector#getParameters()()` Returns the current parameters for track selection. | | `final void` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/TrackSelector#invalidate(androidx.media3.common.TrackSelectionParameters)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/TrackSelectionParameters parameters)` Calls `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/TrackSelector.InvalidationListener#onTrackSelectionsInvalidated(androidx.media3.common.TrackSelectionParameters)` to invalidate all previously generated track selections. | | `final void` | `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/TrackSelector#invalidateForRendererCapabilitiesChange(androidx.media3.exoplayer.Renderer)(https://developer.android.com/reference/androidx/media3/exoplayer/Renderer renderer)` Calls `https://developer.android.com/reference/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. | |

## Public constructors

### FakeTrackSelector

```
public FakeTrackSelector()
```

### FakeTrackSelector

```
public FakeTrackSelector(
    FakeTrackSelector.FakeTrackSelectionFactory fakeTrackSelectionFactory
)
```

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

### FakeTrackSelector

```
public FakeTrackSelector(boolean mayReuseTrackSelection)
```

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

## Public methods

### getAllTrackSelections

```
public List<FakeTrackSelection> getAllTrackSelections()
```

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

## Protected methods

### selectAllTracks

```
protected void selectAllTracks(
    ExoTrackSelection.Definition[] definitions,
    MappingTrackSelector.MappedTrackInfo mappedTrackInfo,
    @RendererCapabilities.Capabilities int[][][] rendererFormatSupports,
    @RendererCapabilities.AdaptiveSupport int[] rendererMixedMimeTypeAdaptationSupports,
    DefaultTrackSelector.Parameters params
)
```

Called from `https://developer.android.com/reference/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/androidx/media3/common/TrackSelectionParameters#audioOffloadPreferences()` with `https://developer.android.com/reference/androidx/media3/common/TrackSelectionParameters.AudioOffloadPreferences#audioOffloadMode()` set to `https://developer.android.com/reference/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 |
|---|---|
| `ExoTrackSelection.Definition[] definitions` | The `https://developer.android.com/reference/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. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/MappingTrackSelector.MappedTrackInfo mappedTrackInfo` | Mapped track information. |
| `@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities int[][][] rendererFormatSupports` | The `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities` for each mapped track, indexed by renderer, track group and track (in that order). |
| `@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport int[] rendererMixedMimeTypeAdaptationSupports` | The `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport` for mixed MIME type adaptation for the renderer. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters params` | The parameters to use for the track selection. |

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