Package com.google.android.exoplayer2.source

## Class CompositeSequenceableLoader

- java.lang.Object
- - com.google.android.exoplayer2.source.CompositeSequenceableLoader

- All Implemented Interfaces:
    `SequenceableLoader`

      public class CompositeSequenceableLoader
      extends Object
      implements SequenceableLoader

  A `SequenceableLoader` that encapsulates multiple other `SequenceableLoader`s.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface com.google.android.exoplayer2.source.SequenceableLoader

      `SequenceableLoader.Callback<T extends SequenceableLoader>`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected SequenceableLoader[]` | `loaders` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `CompositeSequenceableLoader​(SequenceableLoader[] loaders)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `continueLoading​(long positionUs)` | Attempts to continue loading.
    `long` | `getBufferedPositionUs()` | Returns an estimate of the position up to which data is buffered.
    `long` | `getNextLoadPositionUs()` | Returns the next load time, or `C.TIME_END_OF_SOURCE` if loading has finished.
    `boolean` | `isLoading()` | Returns whether the loader is currently loading.
    `void` | `reevaluateBuffer​(long positionUs)` | Re-evaluates the buffer given the playback position.

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

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

- - ### Field Detail

    - #### loaders

          protected final SequenceableLoader[] loaders

  - ### Constructor Detail

    - #### CompositeSequenceableLoader

          public CompositeSequenceableLoader​(SequenceableLoader[] loaders)

  - ### Method Detail

    - #### getBufferedPositionUs

          public final long getBufferedPositionUs()

      Description copied from interface: `SequenceableLoader`
      Returns an estimate of the position up to which data is buffered.
      Specified by:
        `getBufferedPositionUs` in interface `SequenceableLoader`
      Returns:
        An estimate of the absolute position in microseconds up to which data is buffered, or `C.TIME_END_OF_SOURCE` if the data is fully buffered.

    - #### getNextLoadPositionUs

          public final long getNextLoadPositionUs()

      Description copied from interface: `SequenceableLoader`
      Returns the next load time, or `C.TIME_END_OF_SOURCE` if loading has finished.
      Specified by:
        `getNextLoadPositionUs` in interface `SequenceableLoader`

    - #### reevaluateBuffer

          public final void reevaluateBuffer​(long positionUs)

      Description copied from interface: `SequenceableLoader`
      Re-evaluates the buffer given the playback position.

      Re-evaluation may discard buffered media or cancel ongoing loads so that media can be re-buffered in a different quality.

      Specified by:
        `reevaluateBuffer` in interface `SequenceableLoader`
      Parameters:
        `positionUs` - The current playback position in microseconds. If playback of this period has not yet started, the value will be the starting position in this period minus the duration of any media in previous periods still to be played.

    - #### continueLoading

          public boolean continueLoading​(long positionUs)

      Description copied from interface: `SequenceableLoader`
      Attempts to continue loading.
      Specified by:
        `continueLoading` in interface `SequenceableLoader`
      Parameters:
        `positionUs` - The current playback position in microseconds. If playback of the period to which this loader belongs has not yet started, the value will be the starting position in the period minus the duration of any media in previous periods still to be played.
      Returns:
        True if progress was made, meaning that `SequenceableLoader.getNextLoadPositionUs()` will return a different value than prior to the call. False otherwise.

    - #### isLoading

          public boolean isLoading()

      Description copied from interface: `SequenceableLoader`
      Returns whether the loader is currently loading.
      Specified by:
        `isLoading` in interface `SequenceableLoader`