public final class MergingMediaSource extends Object implements MediaSource
MediaSource
s.
The Timeline
s of the sources being merged must have the same number of periods, and must
not have any dynamic windows.
Modifier and Type | Class and Description |
---|---|
static class |
MergingMediaSource.IllegalMergeException
Thrown when a
MergingMediaSource cannot merge its sources. |
MediaSource.Listener
Constructor and Description |
---|
MergingMediaSource(MediaSource... mediaSources) |
Modifier and Type | Method and Description |
---|---|
MediaPeriod |
createPeriod(int index,
Allocator allocator,
long positionUs)
Returns a
MediaPeriod corresponding to the period at the specified index. |
void |
maybeThrowSourceInfoRefreshError()
Throws any pending error encountered while loading or refreshing source information.
|
void |
prepareSource(MediaSource.Listener listener)
Starts preparation of the source.
|
void |
releasePeriod(MediaPeriod mediaPeriod)
Releases the period.
|
void |
releaseSource()
Releases the source.
|
public MergingMediaSource(MediaSource... mediaSources)
mediaSources
- The MediaSource
s to merge.public void prepareSource(MediaSource.Listener listener)
MediaSource
prepareSource
in interface MediaSource
listener
- The listener for source events.public void maybeThrowSourceInfoRefreshError() throws IOException
MediaSource
maybeThrowSourceInfoRefreshError
in interface MediaSource
IOException
public MediaPeriod createPeriod(int index, Allocator allocator, long positionUs)
MediaSource
MediaPeriod
corresponding to the period at the specified index.createPeriod
in interface MediaSource
index
- The index of the period.allocator
- An Allocator
from which to obtain media buffer allocations.positionUs
- The player's current playback position.MediaPeriod
.public void releasePeriod(MediaPeriod mediaPeriod)
MediaSource
releasePeriod
in interface MediaSource
mediaPeriod
- The period to release.public void releaseSource()
MediaSource
This method should be called when the source is no longer required. It may be called in any state.
releaseSource
in interface MediaSource