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 Detail

      • DEFAULT_POSITION

        static final long DEFAULT_POSITION
        The default initial position.
        See Also:
        Constant Field Values
    • Method Detail

      • 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.