Package com.google.android.exoplayer2.trackselection

## Class TrackSelectionParameters.Builder

- java.lang.Object
- - com.google.android.exoplayer2.trackselection.TrackSelectionParameters.Builder

- Direct Known Subclasses:
    `DefaultTrackSelector.ParametersBuilder`
  Enclosing class:
    TrackSelectionParameters

      public static class TrackSelectionParameters.Builder
      extends Object

  A builder for `TrackSelectionParameters`. See the `TrackSelectionParameters` documentation for explanations of the parameters that can be configured using this builder.

- - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `` | `Builder()` | Deprecated. `Context` constraints will not be set using this constructor.
    `` | `Builder​(Context context)` | Creates a builder with default initial values.
    `protected` | `Builder​(TrackSelectionParameters initialValues)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `TrackSelectionParameters` | `build()` | Builds a `TrackSelectionParameters` instance with the selected values.
    `TrackSelectionParameters.Builder` | `clearVideoSizeConstraints()` | Equivalent to `setMaxVideoSize(Integer.MAX_VALUE, Integer.MAX_VALUE)`.
    `TrackSelectionParameters.Builder` | `clearViewportSizeConstraints()` | Equivalent to `setViewportSize(Integer.MAX_VALUE, Integer.MAX_VALUE, true)`.
    `TrackSelectionParameters.Builder` | `setForceHighestSupportedBitrate​(boolean forceHighestSupportedBitrate)` | Sets whether to force selection of the highest bitrate audio and video tracks that comply with all other constraints.
    `TrackSelectionParameters.Builder` | `setForceLowestBitrate​(boolean forceLowestBitrate)` | Sets whether to force selection of the single lowest bitrate audio and video tracks that comply with all other constraints.
    `TrackSelectionParameters.Builder` | `setMaxAudioBitrate​(int maxAudioBitrate)` | Sets the maximum allowed audio bitrate.
    `TrackSelectionParameters.Builder` | `setMaxAudioChannelCount​(int maxAudioChannelCount)` | Sets the maximum allowed audio channel count.
    `TrackSelectionParameters.Builder` | `setMaxVideoBitrate​(int maxVideoBitrate)` | Sets the maximum allowed video bitrate.
    `TrackSelectionParameters.Builder` | `setMaxVideoFrameRate​(int maxVideoFrameRate)` | Sets the maximum allowed video frame rate.
    `TrackSelectionParameters.Builder` | `setMaxVideoSize​(int maxVideoWidth, int maxVideoHeight)` | Sets the maximum allowed video width and height.
    `TrackSelectionParameters.Builder` | `setMaxVideoSizeSd()` | Equivalent to `setMaxVideoSize(1279, 719)`.
    `TrackSelectionParameters.Builder` | `setMinVideoBitrate​(int minVideoBitrate)` | Sets the minimum allowed video bitrate.
    `TrackSelectionParameters.Builder` | `setMinVideoFrameRate​(int minVideoFrameRate)` | Sets the minimum allowed video frame rate.
    `TrackSelectionParameters.Builder` | `setMinVideoSize​(int minVideoWidth, int minVideoHeight)` | Sets the minimum allowed video width and height.
    `TrackSelectionParameters.Builder` | `setPreferredAudioLanguage​(String preferredAudioLanguage)` | Sets the preferred language for audio and forced text tracks.
    `TrackSelectionParameters.Builder` | `setPreferredAudioLanguages​(String... preferredAudioLanguages)` | Sets the preferred languages for audio and forced text tracks.
    `TrackSelectionParameters.Builder` | `setPreferredAudioMimeType​(String mimeType)` | Sets the preferred sample MIME type for audio tracks.
    `TrackSelectionParameters.Builder` | `setPreferredAudioMimeTypes​(String... mimeTypes)` | Sets the preferred sample MIME types for audio tracks.
    `TrackSelectionParameters.Builder` | `setPreferredAudioRoleFlags​(int preferredAudioRoleFlags)` | Sets the preferred `C.RoleFlags` for audio tracks.
    `TrackSelectionParameters.Builder` | `setPreferredTextLanguage​(String preferredTextLanguage)` | Sets the preferred language for text tracks.
    `TrackSelectionParameters.Builder` | `setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings​(Context context)` | Sets the preferred language and role flags for text tracks based on the accessibility settings of `CaptioningManager`.
    `TrackSelectionParameters.Builder` | `setPreferredTextLanguages​(String... preferredTextLanguages)` | Sets the preferred languages for text tracks.
    `TrackSelectionParameters.Builder` | `setPreferredTextRoleFlags​(int preferredTextRoleFlags)` | Sets the preferred `C.RoleFlags` for text tracks.
    `TrackSelectionParameters.Builder` | `setPreferredVideoMimeType​(String mimeType)` | Sets the preferred sample MIME type for video tracks.
    `TrackSelectionParameters.Builder` | `setPreferredVideoMimeTypes​(String... mimeTypes)` | Sets the preferred sample MIME types for video tracks.
    `TrackSelectionParameters.Builder` | `setSelectUndeterminedTextLanguage​(boolean selectUndeterminedTextLanguage)` | Sets whether a text track with undetermined language should be selected if no track with `a preferred language` is available, or if the preferred language is unset.
    `TrackSelectionParameters.Builder` | `setViewportSize​(int viewportWidth, int viewportHeight, boolean viewportOrientationMayChange)` | Sets the viewport size to constrain adaptive video selections so that only tracks suitable for the viewport are selected.
    `TrackSelectionParameters.Builder` | `setViewportSizeToPhysicalDisplaySize​(Context context, boolean viewportOrientationMayChange)` | Equivalent to calling `setViewportSize(int, int, boolean)` with the viewport size obtained from `Util.getCurrentDisplayModeSize(Context)`.

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

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

- - ### Constructor Detail

    - #### Builder

          @Deprecated
          public Builder()

      Deprecated.
      `Context` constraints will not be set using this constructor. Use `Builder(Context)` instead.

    - #### Builder

          public Builder​(Context context)

      Creates a builder with default initial values.
      Parameters:
        `context` - Any context.

    - #### Builder

          protected Builder​(TrackSelectionParameters initialValues)

      Parameters:
        `initialValues` - The `TrackSelectionParameters` from which the initial values of the builder are obtained.

  - ### Method Detail

    - #### setMaxVideoSizeSd

          public TrackSelectionParameters.Builder setMaxVideoSizeSd()

      Equivalent to `setMaxVideoSize(1279, 719)`.
      Returns:
        This builder.

    - #### clearVideoSizeConstraints

          public TrackSelectionParameters.Builder clearVideoSizeConstraints()

      Equivalent to `setMaxVideoSize(Integer.MAX_VALUE, Integer.MAX_VALUE)`.
      Returns:
        This builder.

    - #### setMaxVideoSize

          public TrackSelectionParameters.Builder setMaxVideoSize​(int maxVideoWidth,
                                                                  int maxVideoHeight)

      Sets the maximum allowed video width and height.
      Parameters:
        `maxVideoWidth` - Maximum allowed video width in pixels.
        `maxVideoHeight` - Maximum allowed video height in pixels.
      Returns:
        This builder.

    - #### setMaxVideoFrameRate

          public TrackSelectionParameters.Builder setMaxVideoFrameRate​(int maxVideoFrameRate)

      Sets the maximum allowed video frame rate.
      Parameters:
        `maxVideoFrameRate` - Maximum allowed video frame rate in hertz.
      Returns:
        This builder.

    - #### setMaxVideoBitrate

          public TrackSelectionParameters.Builder setMaxVideoBitrate​(int maxVideoBitrate)

      Sets the maximum allowed video bitrate.
      Parameters:
        `maxVideoBitrate` - Maximum allowed video bitrate in bits per second.
      Returns:
        This builder.

    - #### setMinVideoSize

          public TrackSelectionParameters.Builder setMinVideoSize​(int minVideoWidth,
                                                                  int minVideoHeight)

      Sets the minimum allowed video width and height.
      Parameters:
        `minVideoWidth` - Minimum allowed video width in pixels.
        `minVideoHeight` - Minimum allowed video height in pixels.
      Returns:
        This builder.

    - #### setMinVideoFrameRate

          public TrackSelectionParameters.Builder setMinVideoFrameRate​(int minVideoFrameRate)

      Sets the minimum allowed video frame rate.
      Parameters:
        `minVideoFrameRate` - Minimum allowed video frame rate in hertz.
      Returns:
        This builder.

    - #### setMinVideoBitrate

          public TrackSelectionParameters.Builder setMinVideoBitrate​(int minVideoBitrate)

      Sets the minimum allowed video bitrate.
      Parameters:
        `minVideoBitrate` - Minimum allowed video bitrate in bits per second.
      Returns:
        This builder.

    - #### setViewportSizeToPhysicalDisplaySize

          public TrackSelectionParameters.Builder setViewportSizeToPhysicalDisplaySize​(Context context,
                                                                                       boolean viewportOrientationMayChange)

      Equivalent to calling `setViewportSize(int, int, boolean)` with the viewport size obtained from `Util.getCurrentDisplayModeSize(Context)`.
      Parameters:
        `context` - Any context.
        `viewportOrientationMayChange` - Whether the viewport orientation may change during playback.
      Returns:
        This builder.

    - #### clearViewportSizeConstraints

          public TrackSelectionParameters.Builder clearViewportSizeConstraints()

      Equivalent to `setViewportSize(Integer.MAX_VALUE, Integer.MAX_VALUE, true)`.
      Returns:
        This builder.

    - #### setViewportSize

          public TrackSelectionParameters.Builder setViewportSize​(int viewportWidth,
                                                                  int viewportHeight,
                                                                  boolean viewportOrientationMayChange)

      Sets the viewport size to constrain adaptive video selections so that only tracks suitable for the viewport are selected.
      Parameters:
        `viewportWidth` - Viewport width in pixels.
        `viewportHeight` - Viewport height in pixels.
        `viewportOrientationMayChange` - Whether the viewport orientation may change during playback.
      Returns:
        This builder.

    - #### setPreferredVideoMimeType

          public TrackSelectionParameters.Builder setPreferredVideoMimeType​(@Nullable
                                                                            String mimeType)

      Sets the preferred sample MIME type for video tracks.
      Parameters:
        `mimeType` - The preferred MIME type for video tracks, or `null` to clear a previously set preference.
      Returns:
        This builder.

    - #### setPreferredVideoMimeTypes

          public TrackSelectionParameters.Builder setPreferredVideoMimeTypes​(String... mimeTypes)

      Sets the preferred sample MIME types for video tracks.
      Parameters:
        `mimeTypes` - The preferred MIME types for video tracks in order of preference, or an empty list for no preference.
      Returns:
        This builder.

    - #### setPreferredAudioLanguage

          public TrackSelectionParameters.Builder setPreferredAudioLanguage​(@Nullable
                                                                            String preferredAudioLanguage)

      Sets the preferred language for audio and forced text tracks.
      Parameters:
        `preferredAudioLanguage` - Preferred audio language as an IETF BCP 47 conformant tag, or `null` to select the default track, or the first track if there's no default.
      Returns:
        This builder.

    - #### setPreferredAudioLanguages

          public TrackSelectionParameters.Builder setPreferredAudioLanguages​(String... preferredAudioLanguages)

      Sets the preferred languages for audio and forced text tracks.
      Parameters:
        `preferredAudioLanguages` - Preferred audio languages as IETF BCP 47 conformant tags in order of preference, or an empty array to select the default track, or the first track if there's no default.
      Returns:
        This builder.

    - #### setPreferredAudioRoleFlags

          public TrackSelectionParameters.Builder setPreferredAudioRoleFlags​(@RoleFlags
                                                                             int preferredAudioRoleFlags)

      Sets the preferred `C.RoleFlags` for audio tracks.
      Parameters:
        `preferredAudioRoleFlags` - Preferred audio role flags.
      Returns:
        This builder.

    - #### setMaxAudioChannelCount

          public TrackSelectionParameters.Builder setMaxAudioChannelCount​(int maxAudioChannelCount)

      Sets the maximum allowed audio channel count.
      Parameters:
        `maxAudioChannelCount` - Maximum allowed audio channel count.
      Returns:
        This builder.

    - #### setMaxAudioBitrate

          public TrackSelectionParameters.Builder setMaxAudioBitrate​(int maxAudioBitrate)

      Sets the maximum allowed audio bitrate.
      Parameters:
        `maxAudioBitrate` - Maximum allowed audio bitrate in bits per second.
      Returns:
        This builder.

    - #### setPreferredAudioMimeType

          public TrackSelectionParameters.Builder setPreferredAudioMimeType​(@Nullable
                                                                            String mimeType)

      Sets the preferred sample MIME type for audio tracks.
      Parameters:
        `mimeType` - The preferred MIME type for audio tracks, or `null` to clear a previously set preference.
      Returns:
        This builder.

    - #### setPreferredAudioMimeTypes

          public TrackSelectionParameters.Builder setPreferredAudioMimeTypes​(String... mimeTypes)

      Sets the preferred sample MIME types for audio tracks.
      Parameters:
        `mimeTypes` - The preferred MIME types for audio tracks in order of preference, or an empty list for no preference.
      Returns:
        This builder.

    - #### setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings

          public TrackSelectionParameters.Builder setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings​(Context context)

      Sets the preferred language and role flags for text tracks based on the accessibility settings of `CaptioningManager`.

      Does nothing for API levels < 19 or when the `CaptioningManager` is disabled.

      Parameters:
        `context` - A `Context`.
      Returns:
        This builder.

    - #### setPreferredTextLanguage

          public TrackSelectionParameters.Builder setPreferredTextLanguage​(@Nullable
                                                                           String preferredTextLanguage)

      Sets the preferred language for text tracks.
      Parameters:
        `preferredTextLanguage` - Preferred text language as an IETF BCP 47 conformant tag, or `null` to select the default track if there is one, or no track otherwise.
      Returns:
        This builder.

    - #### setPreferredTextLanguages

          public TrackSelectionParameters.Builder setPreferredTextLanguages​(String... preferredTextLanguages)

      Sets the preferred languages for text tracks.
      Parameters:
        `preferredTextLanguages` - Preferred text languages as IETF BCP 47 conformant tags in order of preference, or an empty array to select the default track if there is one, or no track otherwise.
      Returns:
        This builder.

    - #### setPreferredTextRoleFlags

          public TrackSelectionParameters.Builder setPreferredTextRoleFlags​(@RoleFlags
                                                                            int preferredTextRoleFlags)

      Sets the preferred `C.RoleFlags` for text tracks.
      Parameters:
        `preferredTextRoleFlags` - Preferred text role flags.
      Returns:
        This builder.

    - #### setSelectUndeterminedTextLanguage

          public TrackSelectionParameters.Builder setSelectUndeterminedTextLanguage​(boolean selectUndeterminedTextLanguage)

      Sets whether a text track with undetermined language should be selected if no track with `a preferred language` is available, or if the preferred language is unset.
      Parameters:
        `selectUndeterminedTextLanguage` - Whether a text track with undetermined language should be selected if no preferred language track is available.
      Returns:
        This builder.

    - #### setForceLowestBitrate

          public TrackSelectionParameters.Builder setForceLowestBitrate​(boolean forceLowestBitrate)

      Sets whether to force selection of the single lowest bitrate audio and video tracks that comply with all other constraints.
      Parameters:
        `forceLowestBitrate` - Whether to force selection of the single lowest bitrate audio and video tracks.
      Returns:
        This builder.

    - #### setForceHighestSupportedBitrate

          public TrackSelectionParameters.Builder setForceHighestSupportedBitrate​(boolean forceHighestSupportedBitrate)

      Sets whether to force selection of the highest bitrate audio and video tracks that comply with all other constraints.
      Parameters:
        `forceHighestSupportedBitrate` - Whether to force selection of the highest bitrate audio and video tracks.
      Returns:
        This builder.

    - #### build

          public TrackSelectionParameters build()

      Builds a `TrackSelectionParameters` instance with the selected values.