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 aMediaSourceindefinitely, usePlayer.setRepeatMode(int)instead of this class. To add aMediaSourcea specific number of times to the playlist, useExoPlayer.addMediaSource(com.google.android.exoplayer2.source.MediaSource)in a loop with the sameMediaSource. To combine repeatedMediaSourceinstances into oneMediaSource, for example to further wrap it in anotherMediaSource, useConcatenatingMediaSourcewith the sameMediaSourceaddedmultiple times.Loops aMediaSourcea 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 MediaPeriodcreatePeriod(MediaSource.MediaPeriodId id, Allocator allocator, long startPositionUs)Deprecated.Creates the requestedMediaPeriod.TimelinegetInitialTimeline()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.MediaPeriodIdgetMediaPeriodIdForChildMediaPeriodId(MediaSource.MediaPeriodId mediaPeriodId)Deprecated.Returns theMediaSource.MediaPeriodIdin the wrapping source corresponding to the specifiedMediaSource.MediaPeriodIdin a child source.booleanisSingleWindow()Deprecated.Returns true if the media source is guaranteed to never have zero or more than one window.protected voidonChildSourceInfoRefreshed(Timeline newTimeline)Deprecated.Called when the child source info has been refreshed.voidreleasePeriod(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- TheMediaSourceto loop.
-
LoopingMediaSource
public LoopingMediaSource(MediaSource childSource, int loopCount)
Deprecated.Loops the provided source a specified number of times.- Parameters:
childSource- TheMediaSourceto loop.loopCount- The desired number of loops. Must be strictly positive.
-
-
Method Detail
-
getInitialTimeline
@Nullable public Timeline getInitialTimeline()
Deprecated.Description copied from interface:MediaSourceReturns 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:
getInitialTimelinein interfaceMediaSource- Overrides:
getInitialTimelinein classWrappingMediaSource
-
isSingleWindow
public boolean isSingleWindow()
Deprecated.Description copied from interface:MediaSourceReturns 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:
isSingleWindowin interfaceMediaSource- Overrides:
isSingleWindowin 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:WrappingMediaSourceCreates the requestedMediaPeriod.This method typically forwards to the wrapped media source and optionally wraps the returned
MediaPeriod.- Specified by:
createPeriodin interfaceMediaSource- Overrides:
createPeriodin classWrappingMediaSource- 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. - See Also:
MediaSource.createPeriod(MediaPeriodId, Allocator, long)
-
releasePeriod
public void releasePeriod(MediaPeriod mediaPeriod)
Deprecated.Description copied from class:WrappingMediaSourceReleases aMediaPeriod.This method typically forwards to the wrapped media source and optionally unwraps the provided
MediaPeriod.- Specified by:
releasePeriodin interfaceMediaSource- Overrides:
releasePeriodin classWrappingMediaSource- Parameters:
mediaPeriod- The period to release.- See Also:
MediaSource.releasePeriod(MediaPeriod)
-
onChildSourceInfoRefreshed
protected void onChildSourceInfoRefreshed(Timeline newTimeline)
Deprecated.Description copied from class:WrappingMediaSourceCalled when the child source info has been refreshed.This
Timelinecan be amended if needed, for example usingForwardingTimeline. TheTimelinefor the wrapping source needs to be published withBaseMediaSource.refreshSourceInfo(Timeline).- Overrides:
onChildSourceInfoRefreshedin classWrappingMediaSource- Parameters:
newTimeline- The timeline of the child source.
-
getMediaPeriodIdForChildMediaPeriodId
@Nullable protected MediaSource.MediaPeriodId getMediaPeriodIdForChildMediaPeriodId(MediaSource.MediaPeriodId mediaPeriodId)
Deprecated.Description copied from class:WrappingMediaSourceReturns theMediaSource.MediaPeriodIdin the wrapping source corresponding to the specifiedMediaSource.MediaPeriodIdin a child source. The default implementation does not change the media period id.- Overrides:
getMediaPeriodIdForChildMediaPeriodIdin classWrappingMediaSource- Parameters:
mediaPeriodId- AMediaSource.MediaPeriodIdof the child source.- Returns:
- The corresponding
MediaSource.MediaPeriodIdin the wrapping source. Null if no corresponding media period id can be determined.
-
-