@UnstableApi
public final class SeekParameters


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.

Summary

Constants

static final SeekParameters

Parameters for seeking to the closest sync point.

static final SeekParameters

Default parameters.

static final SeekParameters

Parameters for exact seeking.

static final SeekParameters

Parameters for seeking to the sync point immediately after a requested seek position.

static final SeekParameters

Parameters for seeking to the sync point immediately before a requested seek position.

Public fields

final long

The maximum time that the actual position seeked to may exceed the requested seek position, in microseconds.

final long

The maximum time that the actual position seeked to may precede the requested seek position, in microseconds.

Public constructors

SeekParameters(long toleranceBeforeUs, long toleranceAfterUs)

Public methods

boolean
int
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.

Constants

CLOSEST_SYNC

public static final SeekParameters CLOSEST_SYNC

Parameters for seeking to the closest sync point.

DEFAULT

public static final SeekParameters DEFAULT

Default parameters.

EXACT

public static final SeekParameters EXACT

Parameters for exact seeking.

NEXT_SYNC

public static final SeekParameters NEXT_SYNC

Parameters for seeking to the sync point immediately after a requested seek position.

PREVIOUS_SYNC

public static final SeekParameters PREVIOUS_SYNC

Parameters for seeking to the sync point immediately before a requested seek position.

Public fields

toleranceAfterUs

public final long toleranceAfterUs

The maximum time that the actual position seeked to may exceed the requested seek position, in microseconds.

toleranceBeforeUs

public final long toleranceBeforeUs

The maximum time that the actual position seeked to may precede the requested seek position, in microseconds.

Public constructors

SeekParameters

public SeekParameters(long toleranceBeforeUs, long toleranceAfterUs)
Parameters
long toleranceBeforeUs

The maximum time that the actual position seeked to may precede the requested seek position, in microseconds. Must be non-negative.

long toleranceAfterUs

The maximum time that the actual position seeked to may exceed the requested seek position, in microseconds. Must be non-negative.

Public methods

equals

public boolean equals(@Nullable Object obj)

hashCode

public int hashCode()

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
long positionUs

The requested seek position, in microseconds.

long firstSyncUs

The first candidate seek point, in microseconds.

long secondSyncUs

The second candidate seek point, in microseconds. May equal firstSyncUs if there's only one candidate.

Returns
long

The resolved seek position, in microseconds.