public abstract class

MediaChunk

extends Chunk

 java.lang.Object

androidx.media3.exoplayer.source.chunk.Chunk

↳androidx.media3.exoplayer.source.chunk.MediaChunk

Subclasses:

ContainerMediaChunk, SingleSampleMediaChunk, BaseMediaChunk, FakeMediaChunk

Gradle dependencies

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

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

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

Overview

An abstract base class for Chunks that contain media samples.

Summary

Fields
public final longchunkIndex

The chunk index, or C.INDEX_UNSET if it is not known.

from ChunkdataSource, dataSpec, endTimeUs, loadTaskId, startTimeUs, trackFormat, trackSelectionData, trackSelectionReason, type
Constructors
publicMediaChunk(DataSource dataSource, DataSpec dataSpec, Format trackFormat, int trackSelectionReason, java.lang.Object trackSelectionData, long startTimeUs, long endTimeUs, long chunkIndex)

Methods
public longgetNextChunkIndex()

Returns the next chunk index or C.INDEX_UNSET if it is not known.

public abstract booleanisLoadCompleted()

Returns whether the chunk has been fully loaded.

from ChunkbytesLoaded, getDurationUs, getResponseHeaders, getUri
from java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Fields

public final long chunkIndex

The chunk index, or C.INDEX_UNSET if it is not known.

Constructors

public MediaChunk(DataSource dataSource, DataSpec dataSpec, Format trackFormat, int trackSelectionReason, java.lang.Object trackSelectionData, long startTimeUs, long endTimeUs, long chunkIndex)

Parameters:

dataSource: The source from which the data should be loaded.
dataSpec: Defines the data to be loaded.
trackFormat: See Chunk.trackFormat.
trackSelectionReason: See Chunk.trackSelectionReason.
trackSelectionData: See Chunk.trackSelectionData.
startTimeUs: The start time of the media contained by the chunk, in microseconds.
endTimeUs: The end time of the media contained by the chunk, in microseconds.
chunkIndex: The index of the chunk, or C.INDEX_UNSET if it is not known.

Methods

public long getNextChunkIndex()

Returns the next chunk index or C.INDEX_UNSET if it is not known.

public abstract boolean isLoadCompleted()

Returns whether the chunk has been fully loaded.

Source

/*
 * Copyright (C) 2016 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.exoplayer.source.chunk;

import androidx.annotation.Nullable;
import androidx.media3.common.C;
import androidx.media3.common.Format;
import androidx.media3.common.util.Assertions;
import androidx.media3.common.util.UnstableApi;
import androidx.media3.datasource.DataSource;
import androidx.media3.datasource.DataSpec;

/** An abstract base class for {@link Chunk}s that contain media samples. */
@UnstableApi
public abstract class MediaChunk extends Chunk {

  /** The chunk index, or {@link C#INDEX_UNSET} if it is not known. */
  public final long chunkIndex;

  /**
   * @param dataSource The source from which the data should be loaded.
   * @param dataSpec Defines the data to be loaded.
   * @param trackFormat See {@link #trackFormat}.
   * @param trackSelectionReason See {@link #trackSelectionReason}.
   * @param trackSelectionData See {@link #trackSelectionData}.
   * @param startTimeUs The start time of the media contained by the chunk, in microseconds.
   * @param endTimeUs The end time of the media contained by the chunk, in microseconds.
   * @param chunkIndex The index of the chunk, or {@link C#INDEX_UNSET} if it is not known.
   */
  public MediaChunk(
      DataSource dataSource,
      DataSpec dataSpec,
      Format trackFormat,
      @C.SelectionReason int trackSelectionReason,
      @Nullable Object trackSelectionData,
      long startTimeUs,
      long endTimeUs,
      long chunkIndex) {
    super(
        dataSource,
        dataSpec,
        C.DATA_TYPE_MEDIA,
        trackFormat,
        trackSelectionReason,
        trackSelectionData,
        startTimeUs,
        endTimeUs);
    Assertions.checkNotNull(trackFormat);
    this.chunkIndex = chunkIndex;
  }

  /** Returns the next chunk index or {@link C#INDEX_UNSET} if it is not known. */
  public long getNextChunkIndex() {
    return chunkIndex != C.INDEX_UNSET ? chunkIndex + 1 : C.INDEX_UNSET;
  }

  /** Returns whether the chunk has been fully loaded. */
  public abstract boolean isLoadCompleted();
}