MediaSourcepublic final class MaskingMediaSource extends CompositeMediaSource<Void>
MediaSource that masks the Timeline with a placeholder until the actual media
structure is known.| Modifier and Type | Class | Description |
|---|---|---|
static class |
MaskingMediaSource.PlaceholderTimeline |
A timeline with one dynamic window with a period of indeterminate duration.
|
MediaSource.MediaPeriodId, MediaSource.MediaSourceCaller| Constructor | Description |
|---|---|
MaskingMediaSource(MediaSource mediaSource,
boolean useLazyPreparation) |
Creates the masking media source.
|
| Modifier and Type | Method | Description |
|---|---|---|
MaskingMediaPeriod |
createPeriod(MediaSource.MediaPeriodId id,
Allocator allocator,
long startPositionUs) |
Returns a new
MediaPeriod identified by periodId. |
MediaItem |
getMediaItem() |
Returns the
MediaItem whose media is provided by the source. |
protected MediaSource.MediaPeriodId |
getMediaPeriodIdForChildMediaPeriodId(Void id,
MediaSource.MediaPeriodId mediaPeriodId) |
Returns the
MediaSource.MediaPeriodId in the composite source corresponding to the specified MediaSource.MediaPeriodId in a child source. |
Object |
getTag() |
Deprecated.
Use
getMediaItem() and MediaItem.PlaybackProperties.tag instead. |
Timeline |
getTimeline() |
Returns the
Timeline. |
void |
maybeThrowSourceInfoRefreshError() |
Throws any pending error encountered while loading or refreshing source information.
|
protected void |
onChildSourceInfoRefreshed(Void id,
MediaSource mediaSource,
Timeline newTimeline) |
Called when the source info of a child source has been refreshed.
|
void |
prepareSourceInternal(TransferListener mediaTransferListener) |
Starts source preparation and enables the source, see
BaseMediaSource.prepareSource(MediaSourceCaller,
TransferListener). |
void |
releasePeriod(MediaPeriod mediaPeriod) |
Releases the period.
|
void |
releaseSourceInternal() |
Releases the source, see
BaseMediaSource.releaseSource(MediaSourceCaller). |
addDrmEventListener, addEventListener, createDrmEventDispatcher, createDrmEventDispatcher, createEventDispatcher, createEventDispatcher, createEventDispatcher, disable, enable, isEnabled, prepareSource, refreshSourceInfo, releaseSource, removeDrmEventListener, removeEventListenerdisableChildSource, disableInternal, enableChildSource, enableInternal, getMediaTimeForChildMediaTime, getWindowIndexForChildWindowIndex, prepareChildSource, releaseChildSourcegetInitialTimeline, isSingleWindowpublic MaskingMediaSource(MediaSource mediaSource, boolean useLazyPreparation)
mediaSource - A MediaSource.useLazyPreparation - Whether the mediaSource is prepared lazily. If false, all
manifest loads and other initial preparation steps happen immediately. If true, these
initial preparations are triggered only when the player starts buffering the media.public void prepareSourceInternal(@Nullable
TransferListener mediaTransferListener)
BaseMediaSourceBaseMediaSource.prepareSource(MediaSourceCaller,
TransferListener). This method is called at most once until the next call to BaseMediaSource.releaseSourceInternal().prepareSourceInternal in class CompositeMediaSource<Void>mediaTransferListener - The transfer listener which should be informed of any media data
transfers. May be null if no listener is available. Note that this listener should usually
be only informed of transfers related to the media loads and not of auxiliary loads for
manifests and other data.@Deprecated @Nullable public Object getTag()
getMediaItem() and MediaItem.PlaybackProperties.tag instead.public MediaItem getMediaItem()
MediaSourceMediaItem whose media is provided by the source.public void maybeThrowSourceInfoRefreshError()
MediaSourceShould not be called directly from application code.
Must only be called after MediaSource.prepareSource(MediaSourceCaller, TransferListener).
maybeThrowSourceInfoRefreshError in interface MediaSourcemaybeThrowSourceInfoRefreshError in class CompositeMediaSource<Void>public MaskingMediaPeriod createPeriod(MediaSource.MediaPeriodId id, Allocator allocator, long startPositionUs)
MediaSourceMediaPeriod identified by periodId.
Should not be called directly from application code.
Must only be called if the source is enabled.
id - The identifier of the period.allocator - An Allocator from which to obtain media buffer allocations.startPositionUs - The expected start position, in microseconds.MediaPeriod.public void releasePeriod(MediaPeriod mediaPeriod)
MediaSourceShould not be called directly from application code.
mediaPeriod - The period to release.public void releaseSourceInternal()
BaseMediaSourceBaseMediaSource.releaseSource(MediaSourceCaller). This method is called
exactly once after each call to BaseMediaSource.prepareSourceInternal(TransferListener).releaseSourceInternal in class CompositeMediaSource<Void>protected void onChildSourceInfoRefreshed(Void id, MediaSource mediaSource, Timeline newTimeline)
CompositeMediaSourceonChildSourceInfoRefreshed in class CompositeMediaSource<Void>id - The unique id used to prepare the child source.mediaSource - The child source whose source info has been refreshed.newTimeline - The timeline of the child source.@Nullable protected MediaSource.MediaPeriodId getMediaPeriodIdForChildMediaPeriodId(Void id, MediaSource.MediaPeriodId mediaPeriodId)
CompositeMediaSourceMediaSource.MediaPeriodId in the composite source corresponding to the specified MediaSource.MediaPeriodId in a child source. The default implementation does not change the media period
id.getMediaPeriodIdForChildMediaPeriodId in class CompositeMediaSource<Void>id - The unique id used to prepare the child source.mediaPeriodId - A MediaSource.MediaPeriodId of the child source.MediaSource.MediaPeriodId in the composite source. Null if no
corresponding media period id can be determined.