Class ClippingMediaSource
- 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.ClippingMediaSource
-
- All Implemented Interfaces:
MediaSource
@Deprecated public final class ClippingMediaSource extends WrappingMediaSource
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.MediaSource
that wraps a source and clips its timeline based on specified start/end positions. The wrapped source must consist of a single period.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ClippingMediaSource.IllegalClippingException
Deprecated.Thrown when aClippingMediaSource
cannot clip its wrapped source.-
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 ClippingMediaSource(MediaSource mediaSource, long durationUs)
Deprecated.Creates a new clipping source that wraps the specified source and provides samples from the default position for the specified duration.ClippingMediaSource(MediaSource mediaSource, long startPositionUs, long endPositionUs)
Deprecated.Creates a new clipping source that wraps the specified source and provides samples between the specified start and end position.ClippingMediaSource(MediaSource mediaSource, long startPositionUs, long endPositionUs, boolean enableInitialDiscontinuity, boolean allowDynamicClippingUpdates, boolean relativeToDefaultPosition)
Deprecated.Creates a new clipping source that wraps the specified 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.Creates the requestedMediaPeriod
.void
maybeThrowSourceInfoRefreshError()
Deprecated.Throws any pending error encountered while loading or refreshing source information.protected void
onChildSourceInfoRefreshed(Timeline newTimeline)
Deprecated.Called when the child source info has been refreshed.void
releasePeriod(MediaPeriod mediaPeriod)
Deprecated.Releases aMediaPeriod
.protected void
releaseSourceInternal()
Deprecated.Releases the source, seeBaseMediaSource.releaseSource(MediaSourceCaller)
.-
Methods inherited from class com.google.android.exoplayer2.source.WrappingMediaSource
disableChildSource, enableChildSource, getInitialTimeline, getMediaItem, getMediaPeriodIdForChildMediaPeriodId, getMediaPeriodIdForChildMediaPeriodId, getMediaTimeForChildMediaTime, getMediaTimeForChildMediaTime, getWindowIndexForChildWindowIndex, getWindowIndexForChildWindowIndex, isSingleWindow, onChildSourceInfoRefreshed, prepareChildSource, prepareSourceInternal, prepareSourceInternal, releaseChildSource
-
Methods inherited from class com.google.android.exoplayer2.source.CompositeMediaSource
disableChildSource, disableInternal, enableChildSource, enableInternal, 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
-
-
-
-
Constructor Detail
-
ClippingMediaSource
public ClippingMediaSource(MediaSource mediaSource, long startPositionUs, long endPositionUs)
Deprecated.Creates a new clipping source that wraps the specified source and provides samples between the specified start and end position.- Parameters:
mediaSource
- The single-period source to wrap.startPositionUs
- The start position withinmediaSource
's window at which to start providing samples, in microseconds.endPositionUs
- The end position withinmediaSource
's window at which to stop providing samples, in microseconds. SpecifyC.TIME_END_OF_SOURCE
to provide samples from the specified start point up to the end of the source. Specifying a position that exceeds themediaSource
's duration will also result in the end of the source not being clipped.
-
ClippingMediaSource
public ClippingMediaSource(MediaSource mediaSource, long durationUs)
Deprecated.Creates a new clipping source that wraps the specified source and provides samples from the default position for the specified duration.- Parameters:
mediaSource
- The single-period source to wrap.durationUs
- The duration from the default position in the window inmediaSource
's timeline at which to stop providing samples. Specifying a duration that exceeds themediaSource
's duration will result in the end of the source not being clipped.
-
ClippingMediaSource
public ClippingMediaSource(MediaSource mediaSource, long startPositionUs, long endPositionUs, boolean enableInitialDiscontinuity, boolean allowDynamicClippingUpdates, boolean relativeToDefaultPosition)
Deprecated.Creates a new clipping source that wraps the specified source.If the start point is guaranteed to be a key frame, pass
false
toenableInitialPositionDiscontinuity
to suppress an initial discontinuity when a period is first read from.For live streams, if the clipping positions should move with the live window, pass
true
toallowDynamicClippingUpdates
. Otherwise, the live stream ends when the playback reachesendPositionUs
in the last reported live window at the time a media period was created.- Parameters:
mediaSource
- The single-period source to wrap.startPositionUs
- The start position at which to start providing samples, in microseconds. IfrelativeToDefaultPosition
isfalse
, this position is relative to the start of the window inmediaSource
's timeline. IfrelativeToDefaultPosition
istrue
, this position is relative to the default position in the window inmediaSource
's timeline.endPositionUs
- The end position at which to stop providing samples, in microseconds. SpecifyC.TIME_END_OF_SOURCE
to provide samples from the specified start point up to the end of the source. Specifying a position that exceeds themediaSource
's duration will also result in the end of the source not being clipped. IfrelativeToDefaultPosition
isfalse
, the specified position is relative to the start of the window inmediaSource
's timeline. IfrelativeToDefaultPosition
istrue
, this position is relative to the default position in the window inmediaSource
's timeline.enableInitialDiscontinuity
- Whether the initial discontinuity should be enabled.allowDynamicClippingUpdates
- Whether the clipping of active media periods moves with a live window. Iffalse
, playback ends when it reachesendPositionUs
in the last reported live window at the time a media period was created.relativeToDefaultPosition
- WhetherstartPositionUs
andendPositionUs
are relative to the default position in the window inmediaSource
's timeline.
-
-
Method Detail
-
maybeThrowSourceInfoRefreshError
public void maybeThrowSourceInfoRefreshError() throws IOException
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 interfaceMediaSource
- Overrides:
maybeThrowSourceInfoRefreshError
in classCompositeMediaSource<Void>
- Throws:
IOException
-
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)
-
releaseSourceInternal
protected void releaseSourceInternal()
Deprecated.Description copied from class:BaseMediaSource
Releases the source, seeBaseMediaSource.releaseSource(MediaSourceCaller)
. This method is called exactly once after each call toBaseMediaSource.prepareSourceInternal(TransferListener)
.- Overrides:
releaseSourceInternal
in classCompositeMediaSource<Void>
-
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.
-
-