public final class SeekParameters extends Object
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.
Modifier and Type | Field | Description |
---|---|---|
static SeekParameters |
CLOSEST_SYNC |
Parameters for seeking to the closest sync point.
|
static SeekParameters |
DEFAULT |
Default parameters.
|
static SeekParameters |
EXACT |
Parameters for exact seeking.
|
static SeekParameters |
NEXT_SYNC |
Parameters for seeking to the sync point immediately after a requested seek position.
|
static SeekParameters |
PREVIOUS_SYNC |
Parameters for seeking to the sync point immediately before a requested seek position.
|
long |
toleranceAfterUs |
The maximum time that the actual position seeked to may exceed the requested seek position, in
microseconds.
|
long |
toleranceBeforeUs |
The maximum time that the actual position seeked to may precede the requested seek position, in
microseconds.
|
Constructor | Description |
---|---|
SeekParameters(long toleranceBeforeUs,
long toleranceAfterUs) |
Modifier and Type | Method | Description |
---|---|---|
boolean |
equals(Object obj) |
|
int |
hashCode() |
|
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.
|
public static final SeekParameters EXACT
public static final SeekParameters CLOSEST_SYNC
public static final SeekParameters PREVIOUS_SYNC
public static final SeekParameters NEXT_SYNC
public static final SeekParameters DEFAULT
public final long toleranceBeforeUs
public final long toleranceAfterUs
public SeekParameters(long toleranceBeforeUs, long toleranceAfterUs)
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.public long resolveSeekPositionUs(long positionUs, long firstSyncUs, long secondSyncUs)
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.