public interface ChunkSource
Chunks for a ChunkSampleStream to load.| Modifier and Type | Method and Description |
|---|---|
void |
getNextChunk(MediaChunk previous,
long playbackPositionUs,
ChunkHolder out)
Returns the next chunk to load.
|
int |
getPreferredQueueSize(long playbackPositionUs,
java.util.List<? extends MediaChunk> queue)
Evaluates whether
MediaChunks should be removed from the back of the queue. |
void |
maybeThrowError()
If the source is currently having difficulty providing chunks, then this method throws the
underlying error.
|
void |
onChunkLoadCompleted(Chunk chunk)
Called when the
ChunkSampleStream has finished loading a chunk obtained from this
source. |
boolean |
onChunkLoadError(Chunk chunk,
boolean cancelable,
java.lang.Exception e)
Called when the
ChunkSampleStream encounters an error loading a chunk obtained from
this source. |
void maybeThrowError()
throws java.io.IOException
This method should only be called after the source has been prepared.
java.io.IOException - The underlying error.int getPreferredQueueSize(long playbackPositionUs,
java.util.List<? extends MediaChunk> queue)
MediaChunks should be removed from the back of the queue.
Removing MediaChunks from the back of the queue can be useful if they could be replaced
with chunks of a significantly higher quality (e.g. because the available bandwidth has
substantially increased).
playbackPositionUs - The current playback position.queue - The queue of buffered MediaChunks.void getNextChunk(MediaChunk previous, long playbackPositionUs, ChunkHolder out)
If a chunk is available then ChunkHolder.chunk is set. If the end of the stream has
been reached then ChunkHolder.endOfStream is set. If a chunk is not available but the
end of the stream has not been reached, the ChunkHolder is not modified.
previous - The most recently loaded media chunk.playbackPositionUs - The current playback position. If previous is null then this
parameter is the position from which playback is expected to start (or restart) and hence
should be interpreted as a seek position.out - A holder to populate.void onChunkLoadCompleted(Chunk chunk)
ChunkSampleStream has finished loading a chunk obtained from this
source.
This method should only be called when the source is enabled.
chunk - The chunk whose load has been completed.boolean onChunkLoadError(Chunk chunk, boolean cancelable, java.lang.Exception e)
ChunkSampleStream encounters an error loading a chunk obtained from
this source.
This method should only be called when the source is enabled.
chunk - The chunk whose load encountered the error.cancelable - Whether the load can be canceled.e - The error.