public final class

SingleSampleSeekMap

extends java.lang.Object

implements SeekMap

 java.lang.Object

↳androidx.media3.extractor.SingleSampleSeekMap

Gradle dependencies

compile group: 'androidx.media3', name: 'media3-extractor', version: '1.5.0-alpha01'

  • groupId: androidx.media3
  • artifactId: media3-extractor
  • version: 1.5.0-alpha01

Artifact androidx.media3:media3-extractor:1.5.0-alpha01 it located at Google repository (https://maven.google.com/)

Overview

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

Used for single sample media.

Summary

Constructors
publicSingleSampleSeekMap(long durationUs)

Creates an instance with startPosition set to 0.

publicSingleSampleSeekMap(long durationUs, long startPosition)

Creates an instance.

Methods
public longgetDurationUs()

public SeekMap.SeekPointsgetSeekPoints(long timeUs)

public booleanisSeekable()

from java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructors

public SingleSampleSeekMap(long durationUs)

Creates an instance with startPosition set to 0.

Parameters:

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

public SingleSampleSeekMap(long durationUs, long startPosition)

Creates an instance.

Parameters:

durationUs: The duration of the stream in microseconds, or C.TIME_UNSET if the duration is unknown.
startPosition: The position (byte offset) of the start of the media.

Methods

public boolean isSeekable()

public long getDurationUs()

public SeekMap.SeekPoints getSeekPoints(long timeUs)

Source

/*
 * Copyright 2023 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package androidx.media3.extractor;

import androidx.media3.common.C;
import androidx.media3.common.util.UnstableApi;

/**
 * A {@link SeekMap} implementation that maps the given point back onto itself.
 *
 * <p>Used for single sample media.
 */
@UnstableApi
public final class SingleSampleSeekMap implements SeekMap {
  private final long durationUs;
  private final long startPosition;

  /**
   * Creates an instance with {@code startPosition} set to 0.
   *
   * @param durationUs The duration of the stream in microseconds, or {@link C#TIME_UNSET} if the
   *     duration is unknown.
   */
  public SingleSampleSeekMap(long durationUs) {
    this(durationUs, /* startPosition= */ 0);
  }

  /**
   * Creates an instance.
   *
   * @param durationUs The duration of the stream in microseconds, or {@link C#TIME_UNSET} if the
   *     duration is unknown.
   * @param startPosition The position (byte offset) of the start of the media.
   */
  public SingleSampleSeekMap(long durationUs, long startPosition) {
    this.durationUs = durationUs;
    this.startPosition = startPosition;
  }

  @Override
  public boolean isSeekable() {
    return true;
  }

  @Override
  public long getDurationUs() {
    return durationUs;
  }

  @Override
  public SeekPoints getSeekPoints(long timeUs) {
    return new SeekPoints(new SeekPoint(timeUs, startPosition));
  }
}