docs/doc/reference/com/google/android/exoplayer2/source/ConcatenatingMediaSource2.html
Package com.google.android.exoplayer2.source
All Implemented Interfaces:MediaSource
[@Deprecated](https://developer.android.com/reference/java/lang/Deprecated.html "class or interface in java.lang")public final classConcatenatingMediaSource2extends[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.
Concatenates multiple MediaSources, combining everything in one single Timeline.Window.
This class can only be used under the following conditions:
All sources must be non-empty.
All Windows defined by the sources, except the first, must have an period offset of zero. This excludes, for example, live streams or ClippingMediaSource with a non-zero start position.
Nested Classes | Modifier and Type | Class | Description |
| --- | --- | --- |
| static class | ConcatenatingMediaSource2.Builder |
Deprecated.
A builder for ConcatenatingMediaSource2 instances.
|
-
MediaSource.Factory, MediaSource.MediaPeriodId, MediaSource.MediaSourceCaller
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.
|
| protected void | enableInternal() |
Deprecated.
Enables the source, see BaseMediaSource.enable(MediaSourceCaller).
|
| Timeline | getInitialTimeline() |
Deprecated.
Returns the initial placeholder timeline that is returned immediately when the real timeline is not yet known, or null to let the player create an initial timeline.
|
| 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.
|
| protected int | getWindowIndexForChildWindowIndex(Integer childSourceId, int windowIndex) |
Deprecated.
Returns the window index in the composite source corresponding to the specified window index in a child source.
|
| 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).
|
-
disableChildSource, disableInternal, enableChildSource, getMediaTimeForChildMediaTime, maybeThrowSourceInfoRefreshError, prepareChildSource, releaseChildSource
-
addDrmEventListener, addEventListener, createDrmEventDispatcher, createDrmEventDispatcher, createEventDispatcher, createEventDispatcher, createEventDispatcher, createEventDispatcher, disable, enable, getPlayerId, isEnabled, prepareSource, prepareSource, refreshSourceInfo, releaseSource, removeDrmEventListener, removeEventListener
-
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
isSingleWindow
-
@Nullable
public[Timeline](../Timeline.html "class in com.google.android.exoplayer2")getInitialTimeline()
Deprecated.
Description copied from interface: MediaSource
Returns the initial placeholder timeline that is returned immediately when the real timeline is not yet known, or null to let the player create an initial timeline.
Should not be called directly from application code.
The initial timeline must use the same uids for windows and periods that the real timeline will use. It also must provide windows which are marked as dynamic to indicate that the window is expected to change when the real timeline arrives.
Any media source which has multiple windows should typically provide such an initial timeline to make sure the player reports the correct number of windows immediately.
This method must be called on the application thread.
-
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.
-
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.
-
protected void enableInternal()
Deprecated.
Description copied from class: BaseMediaSource
Enables the source, see BaseMediaSource.enable(MediaSourceCaller).
Overrides:enableInternal in class CompositeMediaSource<Integer>
-
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.
-
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.
-
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>
-
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.
-
@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.
-
protected int getWindowIndexForChildWindowIndex([Integer](https://developer.android.com/reference/java/lang/Integer.html "class or interface in java.lang")childSourceId,
int windowIndex)
Deprecated.
Description copied from class: CompositeMediaSource
Returns the window index in the composite source corresponding to the specified window index in a child source. The default implementation does not change the window index.
Overrides:getWindowIndexForChildWindowIndex in class CompositeMediaSource<Integer>Parameters:childSourceId - The unique id used to prepare the child source.windowIndex - A window index of the child source.Returns:The corresponding window index in the composite source.