Package com.google.android.exoplayer2.source

## Interface SequenceableLoader

- All Known Subinterfaces:
    `MediaPeriod`
  All Known Implementing Classes:
    `ChunkSampleStream`, `ClippingMediaPeriod`, `CompositeSequenceableLoader`, `FakeAdaptiveMediaPeriod`, `FakeMediaPeriod`, `HlsMediaPeriod`, `MaskingMediaPeriod`

      public interface SequenceableLoader

  A loader that can proceed in approximate synchronization with other loaders.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static interface` | `SequenceableLoader.Callback<T extends SequenceableLoader>` | A callback to be notified of `SequenceableLoader` events.

  - ### Method Summary

    All Methods Instance Methods Abstract 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.

- - ### Method Detail

    - #### getBufferedPositionUs

          long getBufferedPositionUs()

      Returns an estimate of the position up to which data is buffered.
      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

          long getNextLoadPositionUs()

      Returns the next load time, or `C.TIME_END_OF_SOURCE` if loading has finished.

    - #### continueLoading

          boolean continueLoading​(long positionUs)

      Attempts to continue loading.
      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 `getNextLoadPositionUs()` will return a different value than prior to the call. False otherwise.

    - #### isLoading

          boolean isLoading()

      Returns whether the loader is currently loading.

    - #### reevaluateBuffer

          void reevaluateBuffer​(long positionUs)

      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.

      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.