DefaultLoadControl
public interface LoadControl
Modifier and Type | Method | Description |
---|---|---|
Allocator |
getAllocator() |
Returns the
Allocator that should be used to obtain media buffer allocations. |
long |
getBackBufferDurationUs() |
Returns the duration of media to retain in the buffer prior to the current playback position,
for fast backward seeking.
|
void |
onPrepared() |
Called by the player when prepared with a new source.
|
void |
onReleased() |
Called by the player when released.
|
void |
onStopped() |
Called by the player when stopped.
|
void |
onTracksSelected(Renderer[] renderers,
TrackGroupArray trackGroups,
ExoTrackSelection[] trackSelections) |
Called by the player when a track selection occurs.
|
boolean |
retainBackBufferFromKeyframe() |
Returns whether media should be retained from the keyframe before the current playback position
minus
getBackBufferDurationUs() , rather than any sample before or at that position. |
boolean |
shouldContinueLoading(long playbackPositionUs,
long bufferedDurationUs,
float playbackSpeed) |
Called by the player to determine whether it should continue to load the source.
|
boolean |
shouldStartPlayback(long bufferedDurationUs,
float playbackSpeed,
boolean rebuffering,
long targetLiveOffsetUs) |
Called repeatedly by the player when it's loading the source, has yet to start playback, and
has the minimum amount of data necessary for playback to be started.
|
void onPrepared()
void onTracksSelected(Renderer[] renderers, TrackGroupArray trackGroups, ExoTrackSelection[] trackSelections)
renderers
- The renderers.trackGroups
- The TrackGroup
s from which the selection was made.trackSelections
- The track selections that were made.void onStopped()
void onReleased()
Allocator getAllocator()
Allocator
that should be used to obtain media buffer allocations.long getBackBufferDurationUs()
Note: If retainBackBufferFromKeyframe()
is false then seeking in the back-buffer
will only be fast if the back-buffer contains a keyframe prior to the seek position.
Note: Implementations should return a single value. Dynamic changes to the back-buffer are not currently supported.
boolean retainBackBufferFromKeyframe()
getBackBufferDurationUs()
, rather than any sample before or at that position.
Warning: Returning true will cause the back-buffer size to depend on the spacing of
keyframes in the media being played. Returning true is not recommended unless you control the
media and are comfortable with the back-buffer size exceeding getBackBufferDurationUs()
by as much as the maximum duration between adjacent keyframes in
the media.
Note: Implementations should return a single value. Dynamic changes to the back-buffer are not currently supported.
getBackBufferDurationUs()
, rather than any sample before or at that
position.boolean shouldContinueLoading(long playbackPositionUs, long bufferedDurationUs, float playbackSpeed)
playbackPositionUs
- The current playback position in microseconds, relative to the start
of the period
that will continue to be loaded if this method
returns true
. If playback of this period has not yet started, the value will be
negative and equal in magnitude to the duration of any media in previous periods still to
be played.bufferedDurationUs
- The duration of media that's currently buffered.playbackSpeed
- The current factor by which playback is sped up.boolean shouldStartPlayback(long bufferedDurationUs, float playbackSpeed, boolean rebuffering, long targetLiveOffsetUs)
false
until some condition has been met (e.g. a certain amount of media is buffered).bufferedDurationUs
- The duration of media that's currently buffered.playbackSpeed
- The current factor by which playback is sped up.rebuffering
- Whether the player is rebuffering. A rebuffer is defined to be caused by
buffer depletion rather than a user action. Hence this parameter is false during initial
buffering and when buffering as a result of a seek operation.targetLiveOffsetUs
- The desired playback position offset to the live edge in
microseconds, or C.TIME_UNSET
if the media is not a live stream or no offset is
configured.