Package com.google.android.exoplayer2

## Class DefaultLoadControl.Builder

- java.lang.Object
- - com.google.android.exoplayer2.DefaultLoadControl.Builder

- Enclosing class:
    DefaultLoadControl

      public static final class DefaultLoadControl.Builder
      extends Object

  Builder for `DefaultLoadControl`.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Builder()` | Constructs a new instance.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `DefaultLoadControl` | `build()` | Creates a `DefaultLoadControl`.
    `DefaultLoadControl` | `createDefaultLoadControl()` | Deprecated. use `build()` instead.
    `DefaultLoadControl.Builder` | `setAllocator​(DefaultAllocator allocator)` | Sets the `DefaultAllocator` used by the loader.
    `DefaultLoadControl.Builder` | `setBackBuffer​(int backBufferDurationMs, boolean retainBackBufferFromKeyframe)` | Sets the back buffer duration, and whether the back buffer is retained from the previous keyframe.
    `DefaultLoadControl.Builder` | `setBufferDurationsMs​(int minBufferMs, int maxBufferMs, int bufferForPlaybackMs, int bufferForPlaybackAfterRebufferMs)` | Sets the buffer duration parameters.
    `DefaultLoadControl.Builder` | `setPrioritizeTimeOverSizeThresholds​(boolean prioritizeTimeOverSizeThresholds)` | Sets whether the load control prioritizes buffer time constraints over buffer size constraints.
    `DefaultLoadControl.Builder` | `setTargetBufferBytes​(int targetBufferBytes)` | Sets the target buffer size in bytes.

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

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

- - ### Constructor Detail

    - #### Builder

          public Builder()

      Constructs a new instance.

  - ### Method Detail

    - #### setAllocator

          @CanIgnoreReturnValue
          public DefaultLoadControl.Builder setAllocator​(DefaultAllocator allocator)

      Sets the `DefaultAllocator` used by the loader.
      Parameters:
        `allocator` - The `DefaultAllocator`.
      Returns:
        This builder, for convenience.
      Throws:
        `IllegalStateException` - If `build()` has already been called.

    - #### setBufferDurationsMs

          @CanIgnoreReturnValue
          public DefaultLoadControl.Builder setBufferDurationsMs​(int minBufferMs,
                                                                 int maxBufferMs,
                                                                 int bufferForPlaybackMs,
                                                                 int bufferForPlaybackAfterRebufferMs)

      Sets the buffer duration parameters.
      Parameters:
        `minBufferMs` - The minimum duration of media that the player will attempt to ensure is buffered at all times, in milliseconds.
        `maxBufferMs` - The maximum duration of media that the player will attempt to buffer, in milliseconds.
        `bufferForPlaybackMs` - The duration of media that must be buffered for playback to start or resume following a user action such as a seek, in milliseconds.
        `bufferForPlaybackAfterRebufferMs` - The default duration of media that must be buffered for playback to resume after a rebuffer, in milliseconds. A rebuffer is defined to be caused by buffer depletion rather than a user action.
      Returns:
        This builder, for convenience.
      Throws:
        `IllegalStateException` - If `build()` has already been called.

    - #### setTargetBufferBytes

          @CanIgnoreReturnValue
          public DefaultLoadControl.Builder setTargetBufferBytes​(int targetBufferBytes)

      Sets the target buffer size in bytes. If set to `C.LENGTH_UNSET`, the target buffer size will be calculated based on the selected tracks.
      Parameters:
        `targetBufferBytes` - The target buffer size in bytes.
      Returns:
        This builder, for convenience.
      Throws:
        `IllegalStateException` - If `build()` has already been called.

    - #### setPrioritizeTimeOverSizeThresholds

          @CanIgnoreReturnValue
          public DefaultLoadControl.Builder setPrioritizeTimeOverSizeThresholds​(boolean prioritizeTimeOverSizeThresholds)

      Sets whether the load control prioritizes buffer time constraints over buffer size constraints.
      Parameters:
        `prioritizeTimeOverSizeThresholds` - Whether the load control prioritizes buffer time constraints over buffer size constraints.
      Returns:
        This builder, for convenience.
      Throws:
        `IllegalStateException` - If `build()` has already been called.

    - #### setBackBuffer

          @CanIgnoreReturnValue
          public DefaultLoadControl.Builder setBackBuffer​(int backBufferDurationMs,
                                                          boolean retainBackBufferFromKeyframe)

      Sets the back buffer duration, and whether the back buffer is retained from the previous keyframe.
      Parameters:
        `backBufferDurationMs` - The back buffer duration in milliseconds.
        `retainBackBufferFromKeyframe` - Whether the back buffer is retained from the previous keyframe.
      Returns:
        This builder, for convenience.
      Throws:
        `IllegalStateException` - If `build()` has already been called.

    - #### createDefaultLoadControl

          @Deprecated
          public DefaultLoadControl createDefaultLoadControl()

      Deprecated.
      use `build()` instead.

    - #### build

          public DefaultLoadControl build()

      Creates a `DefaultLoadControl`.