Class LoopingMediaSource
- java.lang.Object
-
- com.google.android.exoplayer2.source.BaseMediaSource
-
- com.google.android.exoplayer2.source.CompositeMediaSource<Void>
-
- com.google.android.exoplayer2.source.WrappingMediaSource
-
- com.google.android.exoplayer2.source.LoopingMediaSource
-
- All Implemented Interfaces:
MediaSource
@Deprecated public final class LoopingMediaSource extends WrappingMediaSource
Deprecated.To loop aMediaSource
indefinitely, usePlayer.setRepeatMode(int)
instead of this class. To add aMediaSource
a specific number of times to the playlist, useExoPlayer.addMediaSource(com.google.android.exoplayer2.source.MediaSource)
in a loop with the sameMediaSource
. To combine repeatedMediaSource
instances into oneMediaSource
, for example to further wrap it in anotherMediaSource
, useConcatenatingMediaSource
with the sameMediaSource
added
multiple times.Loops aMediaSource
a specified number of times.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.google.android.exoplayer2.source.MediaSource
MediaSource.Factory, MediaSource.MediaPeriodId, MediaSource.MediaSourceCaller
-
-
Field Summary
-
Fields inherited from class com.google.android.exoplayer2.source.WrappingMediaSource
mediaSource
-
-
Constructor Summary
Constructors Constructor Description LoopingMediaSource(MediaSource childSource)
Deprecated.Loops the provided source indefinitely.LoopingMediaSource(MediaSource childSource, int loopCount)
Deprecated.Loops the provided source a specified number of times.
-
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.Creates the requestedMediaPeriod
.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.protected MediaSource.MediaPeriodId
getMediaPeriodIdForChildMediaPeriodId(MediaSource.MediaPeriodId mediaPeriodId)
Deprecated.Returns theMediaSource.MediaPeriodId
in the wrapping source corresponding to the specifiedMediaSource.MediaPeriodId
in a child source.boolean
isSingleWindow()
Deprecated.Returns true if the media source is guaranteed to never have zero or more than one window.protected void
onChildSourceInfoRefreshed(Timeline newTimeline)
Deprecated.Called when the child source info has been refreshed.void
releasePeriod(MediaPeriod mediaPeriod)
Deprecated.Releases aMediaPeriod
.-
Methods inherited from class com.google.android.exoplayer2.source.WrappingMediaSource
disableChildSource, enableChildSource, getMediaItem, getMediaPeriodIdForChildMediaPeriodId, getMediaTimeForChildMediaTime, getMediaTimeForChildMediaTime, getWindowIndexForChildWindowIndex, getWindowIndexForChildWindowIndex, onChildSourceInfoRefreshed, prepareChildSource, prepareSourceInternal, prepareSourceInternal, releaseChildSource
-
Methods inherited from class com.google.android.exoplayer2.source.CompositeMediaSource
disableChildSource, disableInternal, enableChildSource, enableInternal, maybeThrowSourceInfoRefreshError, prepareChildSource, releaseChildSource, releaseSourceInternal
-
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
-
-
-
-
Constructor Detail
-
LoopingMediaSource
public LoopingMediaSource(MediaSource childSource)
Deprecated.Loops the provided source indefinitely. Note that it is usually better to usePlayer.setRepeatMode(int)
.- Parameters:
childSource
- TheMediaSource
to loop.
-
LoopingMediaSource
public LoopingMediaSource(MediaSource childSource, int loopCount)
Deprecated.Loops the provided source a specified number of times.- Parameters:
childSource
- TheMediaSource
to loop.loopCount
- The desired number of loops. Must be strictly positive.
-
-
Method Detail
-
getInitialTimeline
@Nullable public Timeline 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.
- Specified by:
getInitialTimeline
in interfaceMediaSource
- Overrides:
getInitialTimeline
in classWrappingMediaSource
-
isSingleWindow
public boolean isSingleWindow()
Deprecated.Description copied from interface:MediaSource
Returns true if the media source is guaranteed to never have zero or more than one window.Should not be called directly from application code.
The default implementation returns
true
.This method must be called on the application thread.
- Specified by:
isSingleWindow
in interfaceMediaSource
- Overrides:
isSingleWindow
in classWrappingMediaSource
- Returns:
- true if the source has exactly one window.
-
createPeriod
public MediaPeriod createPeriod(MediaSource.MediaPeriodId id, Allocator allocator, long startPositionUs)
Deprecated.Description copied from class:WrappingMediaSource
Creates the requestedMediaPeriod
.This method typically forwards to the wrapped media source and optionally wraps the returned
MediaPeriod
.- Specified by:
createPeriod
in interfaceMediaSource
- Overrides:
createPeriod
in classWrappingMediaSource
- Parameters:
id
- The identifier of the period.allocator
- AnAllocator
from which to obtain media buffer allocations.startPositionUs
- The expected start position, in microseconds.- Returns:
- A new
MediaPeriod
. - See Also:
MediaSource.createPeriod(MediaPeriodId, Allocator, long)
-
releasePeriod
public void releasePeriod(MediaPeriod mediaPeriod)
Deprecated.Description copied from class:WrappingMediaSource
Releases aMediaPeriod
.This method typically forwards to the wrapped media source and optionally unwraps the provided
MediaPeriod
.- Specified by:
releasePeriod
in interfaceMediaSource
- Overrides:
releasePeriod
in classWrappingMediaSource
- Parameters:
mediaPeriod
- The period to release.- See Also:
MediaSource.releasePeriod(MediaPeriod)
-
onChildSourceInfoRefreshed
protected void onChildSourceInfoRefreshed(Timeline newTimeline)
Deprecated.Description copied from class:WrappingMediaSource
Called when the child source info has been refreshed.This
Timeline
can be amended if needed, for example usingForwardingTimeline
. TheTimeline
for the wrapping source needs to be published withBaseMediaSource.refreshSourceInfo(Timeline)
.- Overrides:
onChildSourceInfoRefreshed
in classWrappingMediaSource
- Parameters:
newTimeline
- The timeline of the child source.
-
getMediaPeriodIdForChildMediaPeriodId
@Nullable protected MediaSource.MediaPeriodId getMediaPeriodIdForChildMediaPeriodId(MediaSource.MediaPeriodId mediaPeriodId)
Deprecated.Description copied from class:WrappingMediaSource
Returns theMediaSource.MediaPeriodId
in the wrapping source corresponding to the specifiedMediaSource.MediaPeriodId
in a child source. The default implementation does not change the media period id.- Overrides:
getMediaPeriodIdForChildMediaPeriodId
in classWrappingMediaSource
- Parameters:
mediaPeriodId
- AMediaSource.MediaPeriodId
of the child source.- Returns:
- The corresponding
MediaSource.MediaPeriodId
in the wrapping source. Null if no corresponding media period id can be determined.
-
-