Class SeekParameters


  • public final class SeekParameters
    extends Object
    Parameters that apply to seeking.

    The predefined EXACT, CLOSEST_SYNC, PREVIOUS_SYNC and NEXT_SYNC parameters are suitable for most use cases. Seeking to sync points is typically faster but less accurate than exact seeking.

    In the general case, an instance specifies a maximum tolerance before (toleranceBeforeUs) and after (toleranceAfterUs) a requested seek position (x). If one or more sync points falls within the window [x - toleranceBeforeUs, x + toleranceAfterUs] then the seek will be performed to the sync point within the window that's closest to x. If no sync point falls within the window then the seek will be performed to x - toleranceBeforeUs. Internally the player may need to seek to an earlier sync point and discard media until this position is reached.

    • Field Detail

      • EXACT

        public static final SeekParameters EXACT
        Parameters for exact seeking.
      • CLOSEST_SYNC

        public static final SeekParameters CLOSEST_SYNC
        Parameters for seeking to the closest sync point.
      • PREVIOUS_SYNC

        public static final SeekParameters PREVIOUS_SYNC
        Parameters for seeking to the sync point immediately before a requested seek position.
      • NEXT_SYNC

        public static final SeekParameters NEXT_SYNC
        Parameters for seeking to the sync point immediately after a requested seek position.
      • DEFAULT

        public static final SeekParameters DEFAULT
        Default parameters.
      • toleranceBeforeUs

        public final long toleranceBeforeUs
        The maximum time that the actual position seeked to may precede the requested seek position, in microseconds.
      • toleranceAfterUs

        public final long toleranceAfterUs
        The maximum time that the actual position seeked to may exceed the requested seek position, in microseconds.
    • Constructor Detail

      • SeekParameters

        public SeekParameters​(long toleranceBeforeUs,
                              long toleranceAfterUs)
        Parameters:
        toleranceBeforeUs - The maximum time that the actual position seeked to may precede the requested seek position, in microseconds. Must be non-negative.
        toleranceAfterUs - The maximum time that the actual position seeked to may exceed the requested seek position, in microseconds. Must be non-negative.
    • Method Detail

      • resolveSeekPositionUs

        public long resolveSeekPositionUs​(long positionUs,
                                          long firstSyncUs,
                                          long secondSyncUs)
        Resolves a seek based on the parameters, given the requested seek position and two candidate sync points.
        Parameters:
        positionUs - The requested seek position, in microseocnds.
        firstSyncUs - The first candidate seek point, in micrseconds.
        secondSyncUs - The second candidate seek point, in microseconds. May equal firstSyncUs if there's only one candidate.
        Returns:
        The resolved seek position, in microseconds.
      • equals

        public boolean equals​(@Nullable
                              Object obj)
        Overrides:
        equals in class Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object