com.brightcove.player.render

## Class TrackSelectorHelper

- java.lang.Object
- - com.brightcove.player.render.TrackSelectorHelper

-     public class TrackSelectorHelper
      extends java.lang.Object

  Helper class to do several operations with the `MappingTrackSelector` selector.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `TrackSelectorHelper(com.google.android.exoplayer2.ExoPlayer player, com.google.android.exoplayer2.trackselection.DefaultTrackSelector trackSelector)` Instantiates a new Track selector helper.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `applySelectionOverride(int renderType, SelectionOverrideCreator selectionOverrideCreator)` Creates a `DefaultTrackSelector.SelectionOverride` with the `SelectionOverrideCreator` and the render type.
    `void` | `disableTrack(int trackType)` Disables the Renderer track.
    `void` | `enableTrack(int trackType)` Enables the Renderer track.
    `java.util.List<com.google.android.exoplayer2.Format>` | `findOfflineFormatList(android.content.Context context, java.util.List<com.google.android.exoplayer2.Format> formatList)` Filter the Format list parameter returning only those stored in the device.
    `java.util.Map<java.lang.Integer,java.lang.String>` | `getAudioTracksIndexMap(android.content.Context context, DeliveryType deliveryType, boolean offline)` Creates a map from the Renderer of type `ExoPlayerVideoDisplayComponent.TYPE_AUDIO` with the track index and the language code.
    `java.util.List<com.google.android.exoplayer2.Format>` | `getAvailableFormatList(int trackType)` Gets the available `Format` list by type.
    `int` | `getRendererIndex(int renderType)` Gets the renderer index.
    `java.lang.String` | `getSelectedAudioLanguage()` Gets the selected audio language if any.
    `void` | `selectAudio(java.lang.String language)` Selects the audio language in the `MappingTrackSelector` if available.
    `void` | `selectCaption(BrightcoveCaptionFormat captions)` Selects the Brightcove caption in the @`MappingTrackSelector` if available.
    `void` | `updateTracksSelectionArray(com.google.android.exoplayer2.trackselection.TrackSelectionArray trackSelections)` Updates the Track Selection array.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### TrackSelectorHelper

          public TrackSelectorHelper(@NonNull
                                     com.google.android.exoplayer2.ExoPlayer player,
                                     @NonNull
                                     com.google.android.exoplayer2.trackselection.DefaultTrackSelector trackSelector)

      Instantiates a new Track selector helper.
      Parameters:
        `player` - the player
        `trackSelector` - the track selector

  - ### Method Detail

    - #### getAvailableFormatList

          @NonNull
          public java.util.List<com.google.android.exoplayer2.Format> getAvailableFormatList(int trackType)

      Gets the available `Format` list by type.
      Parameters:
        `trackType` - the track type
      Returns:
        the available format list

    - #### selectCaption

          public void selectCaption(@NonNull
                                    BrightcoveCaptionFormat captions)

      Selects the Brightcove caption in the @`MappingTrackSelector` if available.
      Parameters:
        `captions` - the captions

    - #### selectAudio

          public void selectAudio(@NonNull
                                  java.lang.String language)

      Selects the audio language in the `MappingTrackSelector` if available.
      Parameters:
        `language` - the language

    - #### applySelectionOverride

          public void applySelectionOverride(int renderType,
                                             @NonNull
                                             SelectionOverrideCreator selectionOverrideCreator)

      Creates a `DefaultTrackSelector.SelectionOverride` with the `SelectionOverrideCreator` and the render type. Such Selection Override will be set to the `TrackSelector`.

      If `SelectionOverrideCreator` returns `SelectionOverrideCreator.EMPTY_SELECTION_OVERRIDE`, the Selection Override will be ignored.

      Parameters:
        `renderType` - the `ExoPlayerVideoDisplayComponent.TrackType`
        `selectionOverrideCreator` - the selection override creator

    - #### getSelectedAudioLanguage

          public java.lang.String getSelectedAudioLanguage()

      Gets the selected audio language if any.
      Returns:
        the selected audio language

    - #### updateTracksSelectionArray

          public void updateTracksSelectionArray(@Nullable
                                                 com.google.android.exoplayer2.trackselection.TrackSelectionArray trackSelections)

      Updates the Track Selection array.
      Parameters:
        `trackSelections` - the track selection array

    - #### enableTrack

          public void enableTrack(int trackType)

      Enables the Renderer track.
      Parameters:
        `trackType` - the track type

    - #### disableTrack

          public void disableTrack(int trackType)

      Disables the Renderer track.
      Parameters:
        `trackType` - the track type

    - #### getAudioTracksIndexMap

          @NonNull
          public java.util.Map<java.lang.Integer,java.lang.String> getAudioTracksIndexMap(android.content.Context context,
                                                                                                   DeliveryType deliveryType,
                                                                                                   boolean offline)

      Creates a map from the Renderer of type `ExoPlayerVideoDisplayComponent.TYPE_AUDIO` with the track index and the language code.
      Parameters:
        `deliveryType` - the delivery type
      Returns:
        the audio tracks index map

    - #### getRendererIndex

          public int getRendererIndex(int renderType)

      Gets the renderer index.
      Parameters:
        `renderType` - the render type
      Returns:
        the renderer index

    - #### findOfflineFormatList

          @NonNull
          public java.util.List<com.google.android.exoplayer2.Format> findOfflineFormatList(@NonNull
                                                                                                     android.content.Context context,
                                                                                                     @NonNull
                                                                                                     java.util.List<com.google.android.exoplayer2.Format> formatList)

      Filter the Format list parameter returning only those stored in the device.
      Parameters:
        `context` - reference to the host application context.
        `formatList` - the format list
      Returns:
        the list of Offline Formats