public final class MergingMediaSource extends java.lang.Object implements MediaSource
MediaSources.
The Timelines 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 new
MediaPeriod corresponding to the period at the specified index. |
void |
maybeThrowSourceInfoRefreshError()
Throws any pending error encountered while loading or refreshing source information.
|
void |
prepareSource(ExoPlayer player,
boolean isTopLevelSource,
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 MediaSources to merge.public void prepareSource(ExoPlayer player, boolean isTopLevelSource, MediaSource.Listener listener)
MediaSourceprepareSource in interface MediaSourceplayer - The player for which this source is being prepared.isTopLevelSource - Whether this source has been passed directly to
ExoPlayer.prepare(MediaSource) or
ExoPlayer.prepare(MediaSource, boolean, boolean). If false, this source is
being prepared by another source (e.g. ConcatenatingMediaSource) for composition.listener - The listener for source events.public void maybeThrowSourceInfoRefreshError()
throws java.io.IOException
MediaSourcemaybeThrowSourceInfoRefreshError in interface MediaSourcejava.io.IOExceptionpublic MediaPeriod createPeriod(int index, Allocator allocator, long positionUs)
MediaSourceMediaPeriod corresponding to the period at the specified index.
This method may be called multiple times with the same index without an intervening call to
MediaSource.releasePeriod(MediaPeriod).createPeriod in interface MediaSourceindex - 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)
MediaSourcereleasePeriod in interface MediaSourcemediaPeriod - The period to release.public void releaseSource()
MediaSourceThis method should be called when the source is no longer required. It may be called in any state.
releaseSource in interface MediaSource