Package com.google.android.exoplayer2.extractor

## Interface SeekMap

- All Known Implementing Classes:
    `BinarySearchSeeker.BinarySearchSeekMap`, `ChunkIndex`, `ConstantBitrateSeekMap`, `FlacSeekTableSeekMap`, `IndexSeekMap`, `Mp4Extractor`, `SeekMap.Unseekable`

      public interface SeekMap

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

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static class` | `SeekMap.SeekPoints` | Contains one or two `SeekPoint`s.
    `static class` | `SeekMap.Unseekable` | A `SeekMap` that does not support seeking.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `long` | `getDurationUs()` | Returns the duration of the stream in microseconds.
    `SeekMap.SeekPoints` | `getSeekPoints​(long timeUs)` | Obtains seek points for the specified seek time in microseconds.
    `boolean` | `isSeekable()` | Returns whether seeking is supported.

- - ### Method Detail

    - #### isSeekable

          boolean isSeekable()

      Returns whether seeking is supported.
      Returns:
        Whether seeking is supported.

    - #### getDurationUs

          long getDurationUs()

      Returns the duration of the stream in microseconds.
      Returns:
        The duration of the stream in microseconds, or `C.TIME_UNSET` if the duration is unknown.

    - #### getSeekPoints

          SeekMap.SeekPoints getSeekPoints​(long timeUs)

      Obtains seek points for the specified seek time in microseconds. The returned `SeekMap.SeekPoints` 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:
        `timeUs` - A seek time in microseconds.
      Returns:
        The corresponding seek points.