Class MergingMediaSource
- java.lang.Object
-
- com.google.android.exoplayer2.source.BaseMediaSource
-
- com.google.android.exoplayer2.source.CompositeMediaSource<Integer>
-
- com.google.android.exoplayer2.source.MergingMediaSource
-
- All Implemented Interfaces:
MediaSource
@Deprecated public final class MergingMediaSource extends CompositeMediaSource<Integer>
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 multipleMediaSources.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 classMergingMediaSource.IllegalMergeExceptionDeprecated.Thrown when aMergingMediaSourcecannot 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 MediaPeriodcreatePeriod(MediaSource.MediaPeriodId id, Allocator allocator, long startPositionUs)Deprecated.Returns a newMediaPeriodidentified byperiodId.MediaItemgetMediaItem()Deprecated.Returns theMediaItemwhose media is provided by the source.protected MediaSource.MediaPeriodIdgetMediaPeriodIdForChildMediaPeriodId(Integer childSourceId, MediaSource.MediaPeriodId mediaPeriodId)Deprecated.Returns theMediaSource.MediaPeriodIdin the composite source corresponding to the specifiedMediaSource.MediaPeriodIdin a child source.voidmaybeThrowSourceInfoRefreshError()Deprecated.Throws any pending error encountered while loading or refreshing source information.protected voidonChildSourceInfoRefreshed(Integer childSourceId, MediaSource mediaSource, Timeline newTimeline)Deprecated.Called when the source info of a child source has been refreshed.protected voidprepareSourceInternal(TransferListener mediaTransferListener)Deprecated.Starts source preparation and enables the source, seeBaseMediaSource.prepareSource(MediaSourceCaller, TransferListener, PlayerId).voidreleasePeriod(MediaPeriod mediaPeriod)Deprecated.Releases the period.protected voidreleaseSourceInternal()Deprecated.Releases the source, seeBaseMediaSource.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... 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- TheMediaSourcesto merge.
-
MergingMediaSource
public MergingMediaSource(boolean adjustPeriodTimeOffsets, MediaSource... 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- TheMediaSourcesto merge.
-
MergingMediaSource
public MergingMediaSource(boolean adjustPeriodTimeOffsets, boolean clipDurations, MediaSource... 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- TheMediaSourcesto merge.
-
MergingMediaSource
public MergingMediaSource(boolean adjustPeriodTimeOffsets, boolean clipDurations, CompositeSequenceableLoaderFactory compositeSequenceableLoaderFactory, MediaSource... 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 compositeSequenceableLoaders for when this media source loads data from multiple streams (video, audio etc...).mediaSources- TheMediaSourcesto merge.
-
-
Method Detail
-
getMediaItem
public MediaItem getMediaItem()
Deprecated.Description copied from interface:MediaSourceReturns theMediaItemwhose 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 mediaTransferListener)Deprecated.Description copied from class:BaseMediaSourceStarts source preparation and enables the source, seeBaseMediaSource.prepareSource(MediaSourceCaller, TransferListener, PlayerId). This method is called at most once until the next call toBaseMediaSource.releaseSourceInternal().- Overrides:
prepareSourceInternalin classCompositeMediaSource<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 IOExceptionDeprecated.Description copied from interface:MediaSourceThrows 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:
maybeThrowSourceInfoRefreshErrorin interfaceMediaSource- Overrides:
maybeThrowSourceInfoRefreshErrorin classCompositeMediaSource<Integer>- Throws:
IOException
-
createPeriod
public MediaPeriod createPeriod(MediaSource.MediaPeriodId id, Allocator allocator, long startPositionUs)
Deprecated.Description copied from interface:MediaSourceReturns a newMediaPeriodidentified byperiodId.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- AnAllocatorfrom which to obtain media buffer allocations.startPositionUs- The expected start position, in microseconds.- Returns:
- A new
MediaPeriod.
-
releasePeriod
public void releasePeriod(MediaPeriod mediaPeriod)
Deprecated.Description copied from interface:MediaSourceReleases 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:BaseMediaSourceReleases the source, seeBaseMediaSource.releaseSource(MediaSourceCaller). This method is called exactly once after each call toBaseMediaSource.prepareSourceInternal(TransferListener).- Overrides:
releaseSourceInternalin classCompositeMediaSource<Integer>
-
onChildSourceInfoRefreshed
protected void onChildSourceInfoRefreshed(Integer childSourceId, MediaSource mediaSource, Timeline newTimeline)
Deprecated.Description copied from class:CompositeMediaSourceCalled when the source info of a child source has been refreshed.- Specified by:
onChildSourceInfoRefreshedin classCompositeMediaSource<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 getMediaPeriodIdForChildMediaPeriodId(Integer childSourceId, MediaSource.MediaPeriodId mediaPeriodId)
Deprecated.Description copied from class:CompositeMediaSourceReturns theMediaSource.MediaPeriodIdin the composite source corresponding to the specifiedMediaSource.MediaPeriodIdin a child source. The default implementation does not change the media period id.- Overrides:
getMediaPeriodIdForChildMediaPeriodIdin classCompositeMediaSource<Integer>- Parameters:
childSourceId- The unique id used to prepare the child source.mediaPeriodId- AMediaSource.MediaPeriodIdof the child source.- Returns:
- The corresponding
MediaSource.MediaPeriodIdin the composite source. Null if no corresponding media period id can be determined.
-
-