Class CompositeSequenceableLoader
- java.lang.Object
-
- com.google.android.exoplayer2.source.CompositeSequenceableLoader
-
- All Implemented Interfaces:
SequenceableLoader
public class CompositeSequenceableLoader extends Object implements SequenceableLoader
ASequenceableLoader
that encapsulates multiple otherSequenceableLoader
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, orC.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.
-
-
-
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 interfaceSequenceableLoader
- 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, orC.TIME_END_OF_SOURCE
if loading has finished.- Specified by:
getNextLoadPositionUs
in interfaceSequenceableLoader
-
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 interfaceSequenceableLoader
- 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 interfaceSequenceableLoader
- 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 interfaceSequenceableLoader
-
-