Back to Exoplayer

MergingMediaSource (ExoPlayer library)

docs/doc/reference/com/google/android/exoplayer2/source/MergingMediaSource.html

latest16.2 KB
Original Source

Package com.google.android.exoplayer2.source

Class MergingMediaSource


[@Deprecated](https://developer.android.com/reference/java/lang/Deprecated.html "class or interface in java.lang")public final classMergingMediaSourceextends[CompositeMediaSource](CompositeMediaSource.html "class in com.google.android.exoplayer2.source")<[Integer](https://developer.android.com/reference/java/lang/Integer.html "class or interface in java.lang")>

Deprecated. com.google.android.exoplayer2 is deprecated. Please migrate to androidx.media3 (which contains the same ExoPlayer code). See the migration guide for more details, including a script to help with the migration.

Merges multiple MediaSources.

The Timelines of the sources being merged must have the same number of periods.

Nested Class Summary

Nested Classes | Modifier and Type | Class | Description | | --- | --- | --- | | static class | MergingMediaSource.IllegalMergeException | Deprecated.

Thrown when a MergingMediaSource cannot merge its sources. |

- 

Nested classes/interfaces inherited from interface com.google.android.exoplayer2.source.MediaSource

MediaSource.Factory, MediaSource.MediaPeriodId, MediaSource.MediaSourceCaller

Constructor Summary

Constructors | Constructor | Description | | --- | --- | | MergingMediaSource​(boolean adjustPeriodTimeOffsets, boolean clipDurations, CompositeSequenceableLoaderFactory compositeSequenceableLoaderFactory, MediaSource... mediaSources) | Deprecated.

Creates a merging media source. | | MergingMediaSource​(boolean adjustPeriodTimeOffsets, boolean clipDurations, MediaSource... mediaSources) | Deprecated.

Creates a merging media source. | | MergingMediaSource​(boolean adjustPeriodTimeOffsets, MediaSource... mediaSources) | Deprecated.

Creates a merging media source. | | MergingMediaSource​(MediaSource... mediaSources) | Deprecated.

Creates a merging media source. |

Method Summary

All Methods Instance Methods Concrete Methods Deprecated Methods | Modifier and Type | Method | Description | | --- | --- | --- | | MediaPeriod | createPeriod​(MediaSource.MediaPeriodId id, Allocator allocator, long startPositionUs) | Deprecated.

Returns a new MediaPeriod identified by periodId. | | MediaItem | getMediaItem() | Deprecated.

Returns the MediaItem whose media is provided by the source. | | protected MediaSource.MediaPeriodId | getMediaPeriodIdForChildMediaPeriodId​(Integer childSourceId, MediaSource.MediaPeriodId mediaPeriodId) | Deprecated.

Returns the MediaSource.MediaPeriodId in the composite source corresponding to the specified MediaSource.MediaPeriodId in a child source. | | void | maybeThrowSourceInfoRefreshError() | Deprecated.

Throws any pending error encountered while loading or refreshing source information. | | protected void | onChildSourceInfoRefreshed​(Integer childSourceId, MediaSource mediaSource, Timeline newTimeline) | Deprecated.

Called when the source info of a child source has been refreshed. | | protected void | prepareSourceInternal​(TransferListener mediaTransferListener) | Deprecated.

Starts source preparation and enables the source, see BaseMediaSource.prepareSource(MediaSourceCaller, TransferListener, PlayerId). | | void | releasePeriod​(MediaPeriod mediaPeriod) | Deprecated.

Releases the period. | | protected void | releaseSourceInternal() | Deprecated.

Releases the source, see BaseMediaSource.releaseSource(MediaSourceCaller). |

- 

Methods inherited from class com.google.android.exoplayer2.source.CompositeMediaSource

disableChildSource, disableInternal, enableChildSource, enableInternal, getMediaTimeForChildMediaTime, getWindowIndexForChildWindowIndex, prepareChildSource, releaseChildSource

- 

Methods inherited from class com.google.android.exoplayer2.source.BaseMediaSource

addDrmEventListener, addEventListener, createDrmEventDispatcher, createDrmEventDispatcher, createEventDispatcher, createEventDispatcher, createEventDispatcher, createEventDispatcher, disable, enable, getPlayerId, isEnabled, prepareSource, prepareSource, refreshSourceInfo, releaseSource, removeDrmEventListener, removeEventListener

- 

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

- 

Methods inherited from interface com.google.android.exoplayer2.source.MediaSource

getInitialTimeline, isSingleWindow

Constructor Detail

- 

MergingMediaSource

public MergingMediaSource​([MediaSource](MediaSource.html "interface in com.google.android.exoplayer2.source")... mediaSources)

Deprecated.

Creates a merging media source.

Neither offsets between the timestamps in the media sources nor the durations of the media sources will be adjusted.

Parameters:mediaSources - The MediaSources to merge.

- 

MergingMediaSource

public MergingMediaSource​(boolean adjustPeriodTimeOffsets,[MediaSource](MediaSource.html "interface in com.google.android.exoplayer2.source")... mediaSources)

Deprecated.

Creates a merging media source.

Durations of the media sources will not be adjusted.

Parameters:adjustPeriodTimeOffsets - Whether to adjust timestamps of the merged media sources to all start at the same time.mediaSources - The MediaSources to merge.

- 

MergingMediaSource

public MergingMediaSource​(boolean adjustPeriodTimeOffsets,
                          boolean clipDurations,[MediaSource](MediaSource.html "interface in com.google.android.exoplayer2.source")... mediaSources)

Deprecated.

Creates a merging media source. Parameters:adjustPeriodTimeOffsets - Whether to adjust timestamps of the merged media sources to all start at the same time.clipDurations - Whether to clip the durations of the media sources to match the shortest duration.mediaSources - The MediaSources to merge.

- 

MergingMediaSource

public MergingMediaSource​(boolean adjustPeriodTimeOffsets,
                          boolean clipDurations,[CompositeSequenceableLoaderFactory](CompositeSequenceableLoaderFactory.html "interface in com.google.android.exoplayer2.source")compositeSequenceableLoaderFactory,[MediaSource](MediaSource.html "interface in com.google.android.exoplayer2.source")... mediaSources)

Deprecated.

Creates a merging media source. Parameters:adjustPeriodTimeOffsets - Whether to adjust timestamps of the merged media sources to all start at the same time.clipDurations - Whether to clip the durations of the media sources to match the shortest duration.compositeSequenceableLoaderFactory - A factory to create composite SequenceableLoaders for when this media source loads data from multiple streams (video, audio etc...).mediaSources - The MediaSources to merge.

Method Detail

- 

getMediaItem

public[MediaItem](../MediaItem.html "class in com.google.android.exoplayer2")getMediaItem()

Deprecated.

Description copied from interface: MediaSource

Returns the MediaItem whose media is provided by the source.

Should not be called directly from application code.

This method must be called on the application thread.

- 

prepareSourceInternal

protected void prepareSourceInternal​(@Nullable[TransferListener](../upstream/TransferListener.html "interface in com.google.android.exoplayer2.upstream")mediaTransferListener)

Deprecated.

Description copied from class: BaseMediaSource

Starts source preparation and enables the source, see BaseMediaSource.prepareSource(MediaSourceCaller, TransferListener, PlayerId). This method is called at most once until the next call to BaseMediaSource.releaseSourceInternal(). Overrides:prepareSourceInternal in class CompositeMediaSource<Integer>Parameters: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.

- 

maybeThrowSourceInfoRefreshError

public void maybeThrowSourceInfoRefreshError()
                                      throws[IOException](https://developer.android.com/reference/java/io/IOException.html "class or interface in java.io")

Deprecated.

Description copied from interface: MediaSource

Throws any pending error encountered while loading or refreshing source information.

Should not be called directly from application code.

This method must be called on the playback thread and only after MediaSource.prepareSource(MediaSourceCaller, TransferListener, PlayerId).

Specified by:maybeThrowSourceInfoRefreshError in interface MediaSourceOverrides:maybeThrowSourceInfoRefreshError in class CompositeMediaSource<Integer>Throws:IOException

- 

createPeriod

public[MediaPeriod](MediaPeriod.html "interface in com.google.android.exoplayer2.source")createPeriod​([MediaSource.MediaPeriodId](MediaSource.MediaPeriodId.html "class in com.google.android.exoplayer2.source")id,[Allocator](../upstream/Allocator.html "interface in com.google.android.exoplayer2.upstream")allocator,
                                long startPositionUs)

Deprecated.

Description copied from interface: MediaSource

Returns a new MediaPeriod identified by periodId.

Should not be called directly from application code.

This method must be called on the playback thread and only if the source is enabled.

Parameters:id - The identifier of the period.allocator - An Allocator from which to obtain media buffer allocations.startPositionUs - The expected start position, in microseconds.Returns:A new MediaPeriod.

- 

releasePeriod

public void releasePeriod​([MediaPeriod](MediaPeriod.html "interface in com.google.android.exoplayer2.source")mediaPeriod)

Deprecated.

Description copied from interface: MediaSource

Releases the period.

Should not be called directly from application code.

This method must be called on the playback thread.

Parameters:mediaPeriod - The period to release.

- 

releaseSourceInternal

protected void releaseSourceInternal()

Deprecated.

Description copied from class: BaseMediaSource

Releases the source, see BaseMediaSource.releaseSource(MediaSourceCaller). This method is called exactly once after each call to BaseMediaSource.prepareSourceInternal(TransferListener). Overrides:releaseSourceInternal in class CompositeMediaSource<Integer>

- 

onChildSourceInfoRefreshed

protected void onChildSourceInfoRefreshed​([Integer](https://developer.android.com/reference/java/lang/Integer.html "class or interface in java.lang")childSourceId,[MediaSource](MediaSource.html "interface in com.google.android.exoplayer2.source")mediaSource,[Timeline](../Timeline.html "class in com.google.android.exoplayer2")newTimeline)

Deprecated.

Description copied from class: CompositeMediaSource

Called when the source info of a child source has been refreshed. Specified by:onChildSourceInfoRefreshed in class CompositeMediaSource<Integer>Parameters:childSourceId - 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.

- 

getMediaPeriodIdForChildMediaPeriodId

@Nullable
protected[MediaSource.MediaPeriodId](MediaSource.MediaPeriodId.html "class in com.google.android.exoplayer2.source")getMediaPeriodIdForChildMediaPeriodId​([Integer](https://developer.android.com/reference/java/lang/Integer.html "class or interface in java.lang")childSourceId,[MediaSource.MediaPeriodId](MediaSource.MediaPeriodId.html "class in com.google.android.exoplayer2.source")mediaPeriodId)

Deprecated.

Description copied from class: CompositeMediaSource

Returns the MediaSource.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. Overrides:getMediaPeriodIdForChildMediaPeriodId in class CompositeMediaSource<Integer>Parameters:childSourceId - The unique id used to prepare the child source.mediaPeriodId - A MediaSource.MediaPeriodId of the child source.Returns:The corresponding MediaSource.MediaPeriodId in the composite source. Null if no corresponding media period id can be determined.