SequenceableLoader


@UnstableApi
public interface SequenceableLoader

Known direct subclasses
ChunkSampleStream

A SampleStream that loads media in Chunks, obtained from a ChunkSource.

CompositeSequenceableLoader

A SequenceableLoader that encapsulates multiple other SequenceableLoaders.

MediaPeriod

Loads media corresponding to a Timeline.Period, and allows that media to be read.

Known indirect subclasses
ClippingMediaPeriod

Wraps a MediaPeriod and clips its SampleStreams to provide a subsequence of their samples.

FakeAdaptiveMediaPeriod

Fake MediaPeriod that provides tracks from the given TrackGroupArray.

FakeMediaPeriod

Fake MediaPeriod that provides tracks from the given TrackGroupArray.

MaskingMediaPeriod

Media period that defers calling createPeriod on a given source until createPeriod has been called.


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

Summary

Nested types

public interface SequenceableLoader.Callback<T extends SequenceableLoader>

A callback to be notified of SequenceableLoader events.

Public methods

abstract boolean

Attempts to continue loading.

abstract long

Returns an estimate of the position up to which data is buffered.

abstract long

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

abstract boolean

Returns whether the loader is currently loading.

abstract void
reevaluateBuffer(long positionUs)

Re-evaluates the buffer given the playback position.

Public methods

continueLoading

abstract boolean continueLoading(LoadingInfo loadingInfo)

Attempts to continue loading.

Parameters
LoadingInfo loadingInfo

The LoadingInfo when attempting to continue loading.

Returns
boolean

True if progress was made, meaning that getNextLoadPositionUs will return a different value than prior to the call. False otherwise.

getBufferedPositionUs

abstract long getBufferedPositionUs()

Returns an estimate of the position up to which data is buffered.

Returns
long

An estimate of the absolute position in microseconds up to which data is buffered, or TIME_END_OF_SOURCE if the data is fully buffered.

getNextLoadPositionUs

abstract long getNextLoadPositionUs()

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

isLoading

abstract boolean isLoading()

Returns whether the loader is currently loading.

reevaluateBuffer

abstract 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
long 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.