Class DefaultTrackSelector
- java.lang.Object
- 
- com.google.android.exoplayer2.trackselection.TrackSelector
- 
- com.google.android.exoplayer2.trackselection.MappingTrackSelector
- 
- com.google.android.exoplayer2.trackselection.DefaultTrackSelector
 
 
 
- 
- All Implemented Interfaces:
- RendererCapabilities.Listener
 - Direct Known Subclasses:
- FakeTrackSelector
 
 @Deprecated public class DefaultTrackSelector extends MappingTrackSelector implements RendererCapabilities.Listener Deprecated.com.google.android.exoplayer2 is deprecated. Please migrate to androidx.media3 (which contains the same ExoPlayer code). See the migration guide for more details, including a script to help with the migration.A defaultTrackSelectorsuitable for most use cases.Modifying parametersTrack selection parameters should be modified by obtaining aTrackSelectionParameters.Builderinitialized with the currentTrackSelectionParametersfrom the player. The desired modifications can be made on the builder, and the resultingTrackSelectionParameterscan then be built and set on the player:
 Some specialized parameters are only available in the extendedplayer.setTrackSelectionParameters( player.getTrackSelectionParameters() .buildUpon() .setMaxVideoSizeSd() .setPreferredAudioLanguage("de") .build());DefaultTrackSelector.Parametersclass, which can be retrieved and modified in a similar way by calling methods directly on this class:defaultTrackSelector.setParameters( defaultTrackSelector.getParameters() .buildUpon() .setTunnelingEnabled(true) .build());
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description static classDefaultTrackSelector.ParametersDeprecated.ExtendsDefaultTrackSelector.Parametersby adding fields that are specific toDefaultTrackSelector.static classDefaultTrackSelector.ParametersBuilderDeprecated.UseDefaultTrackSelector.Parameters.Builderinstead.protected static interfaceDefaultTrackSelector.SelectionEligibilityDeprecated.The extent to which tracks are eligible for selection.static classDefaultTrackSelector.SelectionOverrideDeprecated.A track selection override.- 
Nested classes/interfaces inherited from class com.google.android.exoplayer2.trackselection.MappingTrackSelectorMappingTrackSelector.MappedTrackInfo
 - 
Nested classes/interfaces inherited from class com.google.android.exoplayer2.trackselection.TrackSelectorTrackSelector.InvalidationListener
 
- 
 - 
Field SummaryFields Modifier and Type Field Description ContextcontextDeprecated.protected static intSELECTION_ELIGIBILITY_ADAPTIVEDeprecated.Track is eligible for both a fixed selection and as part of an adaptive selection with multiple tracks.protected static intSELECTION_ELIGIBILITY_FIXEDDeprecated.Track is eligible for a fixed selection with one track.protected static intSELECTION_ELIGIBILITY_NODeprecated.Track is not eligible for selection.
 - 
Constructor SummaryConstructors Constructor Description DefaultTrackSelector(Context context)Deprecated.DefaultTrackSelector(Context context, ExoTrackSelection.Factory trackSelectionFactory)Deprecated.DefaultTrackSelector(Context context, TrackSelectionParameters parameters)Deprecated.DefaultTrackSelector(Context context, TrackSelectionParameters parameters, ExoTrackSelection.Factory trackSelectionFactory)Deprecated.DefaultTrackSelector(TrackSelectionParameters parameters, ExoTrackSelection.Factory trackSelectionFactory)
 - 
Method SummaryAll Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description DefaultTrackSelector.Parameters.BuilderbuildUponParameters()Deprecated.Returns a newDefaultTrackSelector.Parameters.Builderinitialized with the current selection parameters.protected static intgetFormatLanguageScore(Format format, String language, boolean allowUndeterminedFormatLanguage)Deprecated.Returns a score for how well a language specified in aFormatmatches a given language.DefaultTrackSelector.ParametersgetParameters()Deprecated.Returns the current parameters for track selection.RendererCapabilities.ListenergetRendererCapabilitiesListener()Deprecated.Returns theRendererCapabilities.Listenerthat the concrete instance uses to listen to the renderer capabilities changes.booleanisSetParametersSupported()Deprecated.Returns if thisTrackSelectorsupportsTrackSelector.setParameters(TrackSelectionParameters).protected static booleanisSupported(@com.google.android.exoplayer2.RendererCapabilities.Capabilities int formatSupport, boolean allowExceedsCapabilities)Deprecated.Returns true if theC.FormatSupportin the givenRendererCapabilities.CapabilitiesisC.FORMAT_HANDLEDor ifallowExceedsCapabilitiesis set and the format support isC.FORMAT_EXCEEDS_CAPABILITIES.protected static StringnormalizeUndeterminedLanguageToNull(String language)Deprecated.Normalizes the input string to null if it does not define a language, or returns it otherwise.voidonRendererCapabilitiesChanged(Renderer renderer)Deprecated.Called when the renderer capabilities are changed.voidrelease()Deprecated.Called by the player to release the selector.protected @NullableType ExoTrackSelection.Definition[]selectAllTracks(MappingTrackSelector.MappedTrackInfo mappedTrackInfo, @com.google.android.exoplayer2.RendererCapabilities.Capabilities int[][][] rendererFormatSupports, @com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport int[] rendererMixedMimeTypeAdaptationSupports, DefaultTrackSelector.Parameters params)Deprecated.Called fromselectTracks(MappedTrackInfo, int[][][], int[], MediaPeriodId, Timeline)to make a track selection for each renderer, prior to overrides and disabled flags being applied.protected Pair<ExoTrackSelection.Definition,Integer>selectAudioTrack(MappingTrackSelector.MappedTrackInfo mappedTrackInfo, @com.google.android.exoplayer2.RendererCapabilities.Capabilities int[][][] rendererFormatSupports, @com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport int[] rendererMixedMimeTypeAdaptationSupports, DefaultTrackSelector.Parameters params)Deprecated.Called byselectAllTracks(MappedTrackInfo, int[][][], int[], Parameters)to create aExoTrackSelection.Definitionfor an audio track selection.protected ExoTrackSelection.DefinitionselectOtherTrack(int trackType, TrackGroupArray groups, @com.google.android.exoplayer2.RendererCapabilities.Capabilities int[][] formatSupport, DefaultTrackSelector.Parameters params)Deprecated.Called byselectAllTracks(MappedTrackInfo, int[][][], int[], Parameters)to create aExoTrackSelectionfor a renderer whose type is neither video, audio or text.protected Pair<ExoTrackSelection.Definition,Integer>selectTextTrack(MappingTrackSelector.MappedTrackInfo mappedTrackInfo, @com.google.android.exoplayer2.RendererCapabilities.Capabilities int[][][] rendererFormatSupports, DefaultTrackSelector.Parameters params, String selectedAudioLanguage)Deprecated.Called byselectAllTracks(MappedTrackInfo, int[][][], int[], Parameters)to create aExoTrackSelection.Definitionfor a text track selection.protected Pair<@NullableType RendererConfiguration[],@NullableType ExoTrackSelection[]>selectTracks(MappingTrackSelector.MappedTrackInfo mappedTrackInfo, @com.google.android.exoplayer2.RendererCapabilities.Capabilities int[][][] rendererFormatSupports, @com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport int[] rendererMixedMimeTypeAdaptationSupport, MediaSource.MediaPeriodId mediaPeriodId, Timeline timeline)Deprecated.Given mapped track information, returns a track selection and configuration for each renderer.protected Pair<ExoTrackSelection.Definition,Integer>selectVideoTrack(MappingTrackSelector.MappedTrackInfo mappedTrackInfo, @com.google.android.exoplayer2.RendererCapabilities.Capabilities int[][][] rendererFormatSupports, @com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport int[] mixedMimeTypeSupports, DefaultTrackSelector.Parameters params)Deprecated.Called byselectAllTracks(MappedTrackInfo, int[][][], int[], Parameters)to create aExoTrackSelection.Definitionfor a video track selection.voidsetAudioAttributes(AudioAttributes audioAttributes)Deprecated.Called by the player to set theAudioAttributesthat will be used for playback.voidsetParameters(DefaultTrackSelector.Parameters.Builder parametersBuilder)Deprecated.Atomically sets the provided parameters for track selection.voidsetParameters(DefaultTrackSelector.ParametersBuilder parametersBuilder)Deprecated.UsesetParameters(Parameters.Builder)instead.voidsetParameters(TrackSelectionParameters parameters)Deprecated.Called by the player to provide parameters for track selection.- 
Methods inherited from class com.google.android.exoplayer2.trackselection.MappingTrackSelectorgetCurrentMappedTrackInfo, onSelectionActivated, selectTracks
 - 
Methods inherited from class com.google.android.exoplayer2.trackselection.TrackSelectorgetBandwidthMeter, init, invalidate, invalidateForRendererCapabilitiesChange
 
- 
 
- 
- 
- 
Field Detail- 
SELECTION_ELIGIBILITY_NOprotected static final int SELECTION_ELIGIBILITY_NO Deprecated.Track is not eligible for selection.- See Also:
- Constant Field Values
 
 - 
SELECTION_ELIGIBILITY_FIXEDprotected static final int SELECTION_ELIGIBILITY_FIXED Deprecated.Track is eligible for a fixed selection with one track.- See Also:
- Constant Field Values
 
 - 
SELECTION_ELIGIBILITY_ADAPTIVEprotected static final int SELECTION_ELIGIBILITY_ADAPTIVE Deprecated.Track is eligible for both a fixed selection and as part of an adaptive selection with multiple tracks.- See Also:
- Constant Field Values
 
 - 
context@Nullable public final Context context Deprecated.
 
- 
 - 
Constructor Detail- 
DefaultTrackSelectorpublic DefaultTrackSelector(Context context) Deprecated.- Parameters:
- context- Any- Context.
 
 - 
DefaultTrackSelectorpublic DefaultTrackSelector(Context context, ExoTrackSelection.Factory trackSelectionFactory) Deprecated.- Parameters:
- context- Any- Context.
- trackSelectionFactory- A factory for- ExoTrackSelections.
 
 - 
DefaultTrackSelectorpublic DefaultTrackSelector(Context context, TrackSelectionParameters parameters) Deprecated.- Parameters:
- context- Any- Context.
- parameters- Initial- TrackSelectionParameters.
 
 - 
DefaultTrackSelector@Deprecated public DefaultTrackSelector(TrackSelectionParameters parameters, ExoTrackSelection.Factory trackSelectionFactory) 
 - 
DefaultTrackSelectorpublic DefaultTrackSelector(Context context, TrackSelectionParameters parameters, ExoTrackSelection.Factory trackSelectionFactory) Deprecated.- Parameters:
- context- Any- Context.
- parameters- Initial- TrackSelectionParameters.
- trackSelectionFactory- A factory for- ExoTrackSelections.
 
 
- 
 - 
Method Detail- 
releasepublic void release() Deprecated.Description copied from class:TrackSelectorCalled by the player to release the selector. The selector cannot be used untilTrackSelector.init(InvalidationListener, BandwidthMeter)is called again.- Overrides:
- releasein class- TrackSelector
 
 - 
getParameterspublic DefaultTrackSelector.Parameters getParameters() Deprecated.Description copied from class:TrackSelectorReturns the current parameters for track selection.- Overrides:
- getParametersin class- TrackSelector
 
 - 
isSetParametersSupportedpublic boolean isSetParametersSupported() Deprecated.Description copied from class:TrackSelectorReturns if thisTrackSelectorsupportsTrackSelector.setParameters(TrackSelectionParameters).The same value is always returned for a given TrackSelectorinstance.- Overrides:
- isSetParametersSupportedin class- TrackSelector
 
 - 
setParameterspublic void setParameters(TrackSelectionParameters parameters) Deprecated.Description copied from class:TrackSelectorCalled by the player to provide parameters for track selection.Only supported if TrackSelector.isSetParametersSupported()returns true.- Overrides:
- setParametersin class- TrackSelector
- Parameters:
- parameters- The parameters for track selection.
 
 - 
setAudioAttributespublic void setAudioAttributes(AudioAttributes audioAttributes) Deprecated.Description copied from class:TrackSelectorCalled by the player to set theAudioAttributesthat will be used for playback.- Overrides:
- setAudioAttributesin class- TrackSelector
 
 - 
setParameters@Deprecated public void setParameters(DefaultTrackSelector.ParametersBuilder parametersBuilder) Deprecated.UsesetParameters(Parameters.Builder)instead.
 - 
setParameterspublic void setParameters(DefaultTrackSelector.Parameters.Builder parametersBuilder) Deprecated.Atomically sets the provided parameters for track selection.- Parameters:
- parametersBuilder- A builder from which to obtain the parameters for track selection.
 
 - 
buildUponParameterspublic DefaultTrackSelector.Parameters.Builder buildUponParameters() Deprecated.Returns a newDefaultTrackSelector.Parameters.Builderinitialized with the current selection parameters.
 - 
getRendererCapabilitiesListener@Nullable public RendererCapabilities.Listener getRendererCapabilitiesListener() Deprecated.Description copied from class:TrackSelectorReturns theRendererCapabilities.Listenerthat the concrete instance uses to listen to the renderer capabilities changes. May benullif the implementation does not listen to the renderer capabilities changes.- Overrides:
- getRendererCapabilitiesListenerin class- TrackSelector
 
 - 
onRendererCapabilitiesChangedpublic void onRendererCapabilitiesChanged(Renderer renderer) Deprecated.Description copied from interface:RendererCapabilities.ListenerCalled when the renderer capabilities are changed.This method will be called on the playback thread. - Specified by:
- onRendererCapabilitiesChangedin interface- RendererCapabilities.Listener
- Parameters:
- renderer- The renderer that has its capabilities changed.
 
 - 
selectTracksprotected final Pair<@NullableType RendererConfiguration[],@NullableType ExoTrackSelection[]> selectTracks(MappingTrackSelector.MappedTrackInfo mappedTrackInfo, @com.google.android.exoplayer2.RendererCapabilities.Capabilities int[][][] rendererFormatSupports, @com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport int[] rendererMixedMimeTypeAdaptationSupport, MediaSource.MediaPeriodId mediaPeriodId, Timeline timeline) throws ExoPlaybackException Deprecated.Description copied from class:MappingTrackSelectorGiven mapped track information, returns a track selection and configuration for each renderer.- Specified by:
- selectTracksin class- MappingTrackSelector
- Parameters:
- mappedTrackInfo- Mapped track information.
- rendererFormatSupports- The- RendererCapabilities.Capabilitiesfor each mapped track, indexed by renderer, track group and track (in that order).
- rendererMixedMimeTypeAdaptationSupport- The- RendererCapabilities.AdaptiveSupportfor mixed MIME type adaptation for the renderer.
- mediaPeriodId- The- MediaSource.MediaPeriodIdof the period for which tracks are to be selected.
- timeline- The- Timelineholding the period for which tracks are to be selected.
- Returns:
- A pair consisting of the track selections and configurations for each renderer. A null
     configuration indicates the renderer should be disabled, in which case the track selection
     will also be null. A track selection may also be null for a non-disabled renderer if RendererCapabilities.getTrackType()isC.TRACK_TYPE_NONE.
- Throws:
- ExoPlaybackException- If an error occurs while selecting the tracks.
 
 - 
selectAllTracksprotected @NullableType ExoTrackSelection.Definition[] selectAllTracks(MappingTrackSelector.MappedTrackInfo mappedTrackInfo, @com.google.android.exoplayer2.RendererCapabilities.Capabilities int[][][] rendererFormatSupports, @com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport int[] rendererMixedMimeTypeAdaptationSupports, DefaultTrackSelector.Parameters params) throws ExoPlaybackException Deprecated.Called fromselectTracks(MappedTrackInfo, int[][][], int[], MediaPeriodId, 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. - Parameters:
- mappedTrackInfo- Mapped track information.
- rendererFormatSupports- The- RendererCapabilities.Capabilitiesfor each mapped track, indexed by renderer, track group and track (in that order).
- rendererMixedMimeTypeAdaptationSupports- The- RendererCapabilities.AdaptiveSupportfor mixed MIME type adaptation for the renderer.
- params- The parameters to use for the track selection.
- Returns:
- The ExoTrackSelection.Definitions for the renderers. A null entry indicates no selection was made.
- Throws:
- ExoPlaybackException- If an error occurs while selecting the tracks.
 
 - 
selectVideoTrack@Nullable protected Pair<ExoTrackSelection.Definition,Integer> selectVideoTrack(MappingTrackSelector.MappedTrackInfo mappedTrackInfo, @com.google.android.exoplayer2.RendererCapabilities.Capabilities int[][][] rendererFormatSupports, @com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport int[] mixedMimeTypeSupports, DefaultTrackSelector.Parameters params) throws ExoPlaybackException Deprecated.Called byselectAllTracks(MappedTrackInfo, int[][][], int[], Parameters)to create aExoTrackSelection.Definitionfor a video track selection.- Parameters:
- mappedTrackInfo- Mapped track information.
- rendererFormatSupports- The- RendererCapabilities.Capabilitiesfor each mapped track, indexed by renderer, track group and track (in that order).
- mixedMimeTypeSupports- The- RendererCapabilities.AdaptiveSupportfor mixed MIME type adaptation for the renderer.
- params- The selector's current constraint parameters.
- Returns:
- A pair of the selected ExoTrackSelection.Definitionand the corresponding renderer index, or null if no selection was made.
- Throws:
- ExoPlaybackException- If an error occurs while selecting the tracks.
 
 - 
selectAudioTrack@Nullable protected Pair<ExoTrackSelection.Definition,Integer> selectAudioTrack(MappingTrackSelector.MappedTrackInfo mappedTrackInfo, @com.google.android.exoplayer2.RendererCapabilities.Capabilities int[][][] rendererFormatSupports, @com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport int[] rendererMixedMimeTypeAdaptationSupports, DefaultTrackSelector.Parameters params) throws ExoPlaybackException Deprecated.Called byselectAllTracks(MappedTrackInfo, int[][][], int[], Parameters)to create aExoTrackSelection.Definitionfor an audio track selection.- Parameters:
- mappedTrackInfo- Mapped track information.
- rendererFormatSupports- The- RendererCapabilities.Capabilitiesfor each mapped track, indexed by renderer, track group and track (in that order).
- rendererMixedMimeTypeAdaptationSupports- The- RendererCapabilities.AdaptiveSupportfor mixed MIME type adaptation for the renderer.
- params- The selector's current constraint parameters.
- Returns:
- A pair of the selected ExoTrackSelection.Definitionand the corresponding renderer index, or null if no selection was made.
- Throws:
- ExoPlaybackException- If an error occurs while selecting the tracks.
 
 - 
selectTextTrack@Nullable protected Pair<ExoTrackSelection.Definition,Integer> selectTextTrack(MappingTrackSelector.MappedTrackInfo mappedTrackInfo, @com.google.android.exoplayer2.RendererCapabilities.Capabilities int[][][] rendererFormatSupports, DefaultTrackSelector.Parameters params, @Nullable String selectedAudioLanguage) throws ExoPlaybackException Deprecated.Called byselectAllTracks(MappedTrackInfo, int[][][], int[], Parameters)to create aExoTrackSelection.Definitionfor a text track selection.- Parameters:
- mappedTrackInfo- Mapped track information.
- rendererFormatSupports- The- RendererCapabilities.Capabilitiesfor each mapped track, indexed by renderer, track group and track (in that order).
- params- The selector's current constraint parameters.
- selectedAudioLanguage- The language of the selected audio track. May be null if the selected audio track declares no language or no audio track was selected.
- Returns:
- A pair of the selected ExoTrackSelection.Definitionand the corresponding renderer index, or null if no selection was made.
- Throws:
- ExoPlaybackException- If an error occurs while selecting the tracks.
 
 - 
selectOtherTrack@Nullable protected ExoTrackSelection.Definition selectOtherTrack(int trackType, TrackGroupArray groups, @com.google.android.exoplayer2.RendererCapabilities.Capabilities int[][] formatSupport, DefaultTrackSelector.Parameters params) throws ExoPlaybackException Deprecated.Called byselectAllTracks(MappedTrackInfo, int[][][], int[], Parameters)to create aExoTrackSelectionfor a renderer whose type is neither video, audio or text.- Parameters:
- trackType- The type of the renderer.
- groups- The- TrackGroupArraymapped to the renderer.
- formatSupport- The- RendererCapabilities.Capabilitiesfor each mapped track, indexed by track group and track (in that order).
- params- The selector's current constraint parameters.
- Returns:
- The ExoTrackSelectionfor the renderer, or null if no selection was made.
- Throws:
- ExoPlaybackException- If an error occurs while selecting the tracks.
 
 - 
isSupportedprotected static boolean isSupported(@com.google.android.exoplayer2.RendererCapabilities.Capabilities int formatSupport, boolean allowExceedsCapabilities)Deprecated.Returns true if theC.FormatSupportin the givenRendererCapabilities.CapabilitiesisC.FORMAT_HANDLEDor ifallowExceedsCapabilitiesis set and the format support isC.FORMAT_EXCEEDS_CAPABILITIES.- Parameters:
- formatSupport-- RendererCapabilities.Capabilities.
- allowExceedsCapabilities- Whether to return true if- C.FormatSupportis- C.FORMAT_EXCEEDS_CAPABILITIES.
- Returns:
- True if C.FormatSupportisC.FORMAT_HANDLED, or ifallowExceedsCapabilitiesis set and the format support isC.FORMAT_EXCEEDS_CAPABILITIES.
 
 - 
normalizeUndeterminedLanguageToNull@Nullable protected static String normalizeUndeterminedLanguageToNull(@Nullable String language) Deprecated.Normalizes the input string to null if it does not define a language, or returns it otherwise.- Parameters:
- language- The string.
- Returns:
- The string, optionally normalized to null if it does not define a language.
 
 - 
getFormatLanguageScoreprotected static int getFormatLanguageScore(Format format, @Nullable String language, boolean allowUndeterminedFormatLanguage) Deprecated.Returns a score for how well a language specified in aFormatmatches a given language.- Parameters:
- format- The- Format.
- language- The language, or null.
- allowUndeterminedFormatLanguage- Whether matches with an empty or undetermined format language tag are allowed.
- Returns:
- A score of 4 if the languages match fully, a score of 3 if the languages match partly, a score of 2 if the languages don't match but belong to the same main language, a score of 1 if the format language is undetermined and such a match is allowed, and a score of 0 if the languages don't match at all.
 
 
- 
 
-