public final class

FixedTrackSelection

extends BaseTrackSelection

 java.lang.Object

androidx.media3.exoplayer.trackselection.BaseTrackSelection

↳androidx.media3.exoplayer.trackselection.FixedTrackSelection

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

A TrackSelection consisting of a single track.

Summary

Fields
from BaseTrackSelectiongroup, length, tracks[]
Constructors
publicFixedTrackSelection(TrackGroup group, int track)

publicFixedTrackSelection(TrackGroup group, int track, int type)

publicFixedTrackSelection(TrackGroup group, int track, int type, int reason, java.lang.Object data)

Methods
public intgetSelectedIndex()

public java.lang.ObjectgetSelectionData()

public intgetSelectionReason()

public voidupdateSelectedTrack(long playbackPositionUs, long bufferedDurationUs, long availableDurationUs, java.util.List<MediaChunk> queue, MediaChunkIterator mediaChunkIterators[])

from BaseTrackSelectiondisable, enable, equals, evaluateQueueSize, excludeTrack, getFormat, getIndexInTrackGroup, getSelectedFormat, getSelectedIndexInTrackGroup, getTrackGroup, getType, hashCode, indexOf, indexOf, isTrackExcluded, length, onPlaybackSpeed
from java.lang.Objectclone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait

Constructors

public FixedTrackSelection(TrackGroup group, int track)

Parameters:

group: The TrackGroup. Must not be null.
track: The index of the selected track within the TrackGroup.

public FixedTrackSelection(TrackGroup group, int track, int type)

Parameters:

group: The TrackGroup. Must not be null.
track: The index of the selected track within the TrackGroup.
type: The type that will be returned from TrackSelection.getType().

public FixedTrackSelection(TrackGroup group, int track, int type, int reason, java.lang.Object data)

Parameters:

group: The TrackGroup. Must not be null.
track: The index of the selected track within the TrackGroup.
type: The type that will be returned from TrackSelection.getType().
reason: A reason for the track selection.
data: Optional data associated with the track selection.

Methods

public void updateSelectedTrack(long playbackPositionUs, long bufferedDurationUs, long availableDurationUs, java.util.List<MediaChunk> queue, MediaChunkIterator mediaChunkIterators[])

public int getSelectedIndex()

public int getSelectionReason()

public java.lang.Object getSelectionData()

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.trackselection;

import androidx.annotation.Nullable;
import androidx.media3.common.C;
import androidx.media3.common.TrackGroup;
import androidx.media3.common.util.UnstableApi;
import androidx.media3.exoplayer.source.chunk.MediaChunk;
import androidx.media3.exoplayer.source.chunk.MediaChunkIterator;
import java.util.List;

/** A {@link TrackSelection} consisting of a single track. */
@UnstableApi
public final class FixedTrackSelection extends BaseTrackSelection {

  private final @C.SelectionReason int reason;
  @Nullable private final Object data;

  /**
   * @param group The {@link TrackGroup}. Must not be null.
   * @param track The index of the selected track within the {@link TrackGroup}.
   */
  public FixedTrackSelection(TrackGroup group, int track) {
    this(group, /* track= */ track, /* type= */ TrackSelection.TYPE_UNSET);
  }

  /**
   * @param group The {@link TrackGroup}. Must not be null.
   * @param track The index of the selected track within the {@link TrackGroup}.
   * @param type The type that will be returned from {@link TrackSelection#getType()}.
   */
  public FixedTrackSelection(TrackGroup group, int track, @Type int type) {
    this(group, track, type, C.SELECTION_REASON_UNKNOWN, /* data= */ null);
  }

  /**
   * @param group The {@link TrackGroup}. Must not be null.
   * @param track The index of the selected track within the {@link TrackGroup}.
   * @param type The type that will be returned from {@link TrackSelection#getType()}.
   * @param reason A reason for the track selection.
   * @param data Optional data associated with the track selection.
   */
  public FixedTrackSelection(
      TrackGroup group,
      int track,
      @Type int type,
      @C.SelectionReason int reason,
      @Nullable Object data) {
    super(group, /* tracks= */ new int[] {track}, type);
    this.reason = reason;
    this.data = data;
  }

  @Override
  public void updateSelectedTrack(
      long playbackPositionUs,
      long bufferedDurationUs,
      long availableDurationUs,
      List<? extends MediaChunk> queue,
      MediaChunkIterator[] mediaChunkIterators) {
    // Do nothing.
  }

  @Override
  public int getSelectedIndex() {
    return 0;
  }

  @Override
  public @C.SelectionReason int getSelectionReason() {
    return reason;
  }

  @Override
  @Nullable
  public Object getSelectionData() {
    return data;
  }
}