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

    Fields
    Modifier and Type
    Field
    Description
    static final long
    The default initial position.
  • Method Summary

    Modifier and Type
    Method
    Description
    long
    Return the desired initial position in microseconds.
    default boolean
     
  • Field Details

    • DEFAULT_POSITION

      static final long DEFAULT_POSITION
      The default initial position.
      See Also:
  • Method Details

    • getInitialPositionUs

      long getInitialPositionUs(Timeline timeline)
      Return the desired initial position in microseconds. If the default should be used, return DEFAULT_POSITION. For DASH live streams, it is LiveConfiguration.liveEdgeLatencyMs milliseconds away from the Live edge, while for HLS live streams it is LiveConfiguration.hlsLiveTailSegmentIndex segments 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 first Timeline.Window of the Timeline.
      Parameters:
      timeline - the computed Timeline.
      Returns:
      the desired initial position in microseconds or DEFAULT_POSITION.
    • snapToSegmentStart

      default boolean snapToSegmentStart()
      Returns:
      true if the player should snap to the previous sync point