Package com.castlabs.android.player
Interface InitialPositionProvider
public interface InitialPositionProvider
Callback to define an initial playing position right after the
Timeline is ready.
This allows for runtime decision of the starting playback position, before the Player starts
buffering the media.
Note that setting an InitialPositionProvider will override any starting position
set in the PlayerConfig passed to the PlayerController.open(PlayerConfig) method.-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final longThe default initial position. -
Method Summary
Modifier and TypeMethodDescriptionlonggetInitialPositionUs(Timeline timeline) Return the desired initial position in microseconds.default booleanDetermines whether the player should snap to the previous sync point.
-
Field Details
-
DEFAULT_POSITION
static final long DEFAULT_POSITIONThe default initial position.- See Also:
-
-
Method Details
-
getInitialPositionUs
Return the desired initial position in microseconds. If the default should be used, returnDEFAULT_POSITION. For DASH live streams, it isLiveConfiguration.liveEdgeLatencyMsmilliseconds away from the Live edge, while for HLS live streams it isLiveConfiguration.hlsLiveTailSegmentIndexsegments behind the live edge. For progressive streams (such as mp4 files), the timeline information will not be complete, but the returned position will still be taken into account. Note that this method will be invoked on the Player's media loader thread, and any delays introduced here will directly impact startup time. The returned position must be relative to the firstTimeline.Windowof the Timeline.- Parameters:
timeline- the computedTimeline.- Returns:
- the desired initial position in microseconds or
DEFAULT_POSITION.
-
snapToSegmentStart
default boolean snapToSegmentStart()Determines whether the player should snap to the previous sync point. This is used to ensure proper segment alignment in streaming playback.- Returns:
trueif the player should snap to the previous sync point
-