@UnstableApi
public interface SeekMap

Known direct subclasses
BinarySearchSeeker.BinarySearchSeekMap

A SeekMap implementation that returns the estimated byte location from calculateNextSearchBytePosition for each getSeekPoints query.

ChunkIndex

Defines chunks of samples within a media stream.

ConstantBitrateSeekMap

A SeekMap implementation that assumes the stream has a constant bitrate and consists of multiple independent frames of the same size.

FlacSeekTableSeekMap

A SeekMap implementation for FLAC streams that contain a seek table.

ForwardingSeekMap

A forwarding class for SeekMap

IndexSeekMap

A SeekMap implementation based on a mapping between times and positions in the input stream.

Mp4Extractor

Extracts data from the MP4 container format.

SeekMap.Unseekable

A SeekMap that does not support seeking.

SingleSampleSeekMap

A SeekMap implementation that maps the given point back onto itself.


Maps seek positions (in microseconds) to corresponding positions (byte offsets) in the stream.

Summary

Nested types

public final class SeekMap.SeekPoints

Contains one or two SeekPoints.

public class SeekMap.Unseekable implements SeekMap

A SeekMap that does not support seeking.

Public methods

abstract long

Returns the duration of the stream in microseconds.

abstract SeekMap.SeekPoints
getSeekPoints(long timeUs)

Obtains seek points for the specified seek time in microseconds.

abstract boolean

Returns whether seeking is supported.

Public methods

getDurationUs

abstract long getDurationUs()

Returns the duration of the stream in microseconds.

Returns
long

The duration of the stream in microseconds, or TIME_UNSET if the duration is unknown.

getSeekPoints

abstract SeekMap.SeekPoints getSeekPoints(long timeUs)

Obtains seek points for the specified seek time in microseconds. The returned will contain one or two distinct seek points.

Two seek points [A, B] are returned in the case that seeking can only be performed to discrete points in time, there does not exist a seek point at exactly the requested time, and there exist seek points on both sides of it. In this case A and B are the closest seek points before and after the requested time. A single seek point is returned in all other cases.

Parameters
long timeUs

A seek time in microseconds.

Returns
SeekMap.SeekPoints

The corresponding seek points.

isSeekable

abstract boolean isSeekable()

Returns whether seeking is supported.

Returns
boolean

Whether seeking is supported.