SinglePeriodTimeline


@UnstableApi
public final class SinglePeriodTimeline extends Timeline


A Timeline consisting of a single period and static window.

Summary

Public constructors

SinglePeriodTimeline(
    long durationUs,
    boolean isSeekable,
    boolean isDynamic,
    boolean isLive,
    @Nullable Object manifest,
    @Nullable Object tag
)

This method is deprecated.

Use SinglePeriodTimeline instead.

SinglePeriodTimeline(
    long durationUs,
    boolean isSeekable,
    boolean isDynamic,
    boolean useLiveConfiguration,
    @Nullable Object manifest,
    MediaItem mediaItem
)

Creates a timeline containing a single period and a window that spans it.

SinglePeriodTimeline(
    long periodDurationUs,
    long windowDurationUs,
    long windowPositionInPeriodUs,
    long windowDefaultStartPositionUs,
    boolean isSeekable,
    boolean isDynamic,
    boolean isLive,
    @Nullable Object manifest,
    @Nullable Object tag
)

This method is deprecated.

Use SinglePeriodTimeline instead.

SinglePeriodTimeline(
    long periodDurationUs,
    long windowDurationUs,
    long windowPositionInPeriodUs,
    long windowDefaultStartPositionUs,
    boolean isSeekable,
    boolean isDynamic,
    boolean useLiveConfiguration,
    @Nullable Object manifest,
    MediaItem mediaItem
)

Creates a timeline with one period, and a window of known duration starting at a specified position in the period.

SinglePeriodTimeline(
    long presentationStartTimeMs,
    long windowStartTimeMs,
    long elapsedRealtimeEpochOffsetMs,
    long periodDurationUs,
    long windowDurationUs,
    long windowPositionInPeriodUs,
    long windowDefaultStartPositionUs,
    boolean isSeekable,
    boolean isDynamic,
    boolean isLive,
    @Nullable Object manifest,
    @Nullable Object tag
)

This method is deprecated.

Use SinglePeriodTimeline instead.

SinglePeriodTimeline(
    long presentationStartTimeMs,
    long windowStartTimeMs,
    long elapsedRealtimeEpochOffsetMs,
    long periodDurationUs,
    long windowDurationUs,
    long windowPositionInPeriodUs,
    long windowDefaultStartPositionUs,
    boolean isSeekable,
    boolean isDynamic,
    @Nullable Object manifest,
    MediaItem mediaItem,
    @Nullable MediaItem.LiveConfiguration liveConfiguration
)

This method is deprecated.

Use SinglePeriodTimeline instead.

SinglePeriodTimeline(
    long presentationStartTimeMs,
    long windowStartTimeMs,
    long elapsedRealtimeEpochOffsetMs,
    long periodDurationUs,
    long windowDurationUs,
    long windowPositionInPeriodUs,
    long windowDefaultStartPositionUs,
    boolean isSeekable,
    boolean isDynamic,
    boolean suppressPositionProjection,
    @Nullable Object manifest,
    MediaItem mediaItem,
    @Nullable MediaItem.LiveConfiguration liveConfiguration
)

Creates a timeline with one period, and a window of known duration starting at a specified position in the period.

Public methods

int

Returns the index of the period identified by its unique uid, or INDEX_UNSET if the period is not in the timeline.

Timeline.Period
getPeriod(int periodIndex, Timeline.Period period, boolean setIds)

Populates a Period with data for the period at the specified index.

int

Returns the number of periods in the timeline.

Object
getUidOfPeriod(int periodIndex)

Returns the unique id of the period identified by its index in the timeline.

Timeline.Window
getWindow(
    int windowIndex,
    Timeline.Window window,
    long defaultPositionProjectionUs
)

Populates a Window with data for the window at the specified index.

int

Returns the number of windows in the timeline.

Inherited Constants

From androidx.media3.common.Timeline
static final Bundleable.Creator<Timeline>

This field is deprecated.

Use fromBundle instead.

static final Timeline

An empty timeline.

Inherited methods

From androidx.media3.common.Timeline
final Timeline

Returns a copy of this timeline containing just the single specified Window.

boolean
static Timeline

Restores a Timeline from a Bundle.

int
getFirstWindowIndex(boolean shuffleModeEnabled)

Returns the index of the first window in the playback order depending on whether shuffling is enabled.

int
getLastWindowIndex(boolean shuffleModeEnabled)

Returns the index of the last window in the playback order depending on whether shuffling is enabled.

final int
getNextPeriodIndex(
    int periodIndex,
    Timeline.Period period,
    Timeline.Window window,
    @Player.RepeatMode int repeatMode,
    boolean shuffleModeEnabled
)

Returns the index of the period after the period at index periodIndex depending on the repeatMode and whether shuffling is enabled.

int
getNextWindowIndex(
    int windowIndex,
    @Player.RepeatMode int repeatMode,
    boolean shuffleModeEnabled
)

Returns the index of the window after the window at index windowIndex depending on the repeatMode and whether shuffling is enabled.

final Timeline.Period
getPeriod(int periodIndex, Timeline.Period period)

Populates a Period with data for the period at the specified index.

Timeline.Period
getPeriodByUid(Object periodUid, Timeline.Period period)

Populates a Period with data for the period with the specified unique identifier.

final Pair<ObjectLong>
@UnstableApi
@InlineMe(replacement = "this.getPeriodPositionUs(window, period, windowIndex, windowPositionUs)")
getPeriodPosition(
    Timeline.Window window,
    Timeline.Period period,
    int windowIndex,
    long windowPositionUs
)

This method is deprecated.

Use getPeriodPositionUs instead.

final @Nullable Pair<ObjectLong>
@UnstableApi
@InlineMe(replacement = "this.getPeriodPositionUs(" + "window, period, windowIndex, windowPositionUs, defaultPositionProjectionUs)")
getPeriodPosition(
    Timeline.Window window,
    Timeline.Period period,
    int windowIndex,
    long windowPositionUs,
    long defaultPositionProjectionUs
)

This method is deprecated.

Use getPeriodPositionUs instead.

final Pair<ObjectLong>
getPeriodPositionUs(
    Timeline.Window window,
    Timeline.Period period,
    int windowIndex,
    long windowPositionUs
)

Calls getPeriodPositionUs with a zero default position projection.

final @Nullable Pair<ObjectLong>
getPeriodPositionUs(
    Timeline.Window window,
    Timeline.Period period,
    int windowIndex,
    long windowPositionUs,
    long defaultPositionProjectionUs
)

Converts (windowIndex, windowPositionUs) to the corresponding (periodUid, periodPositionUs).

int
getPreviousWindowIndex(
    int windowIndex,
    @Player.RepeatMode int repeatMode,
    boolean shuffleModeEnabled
)

Returns the index of the window before the window at index windowIndex depending on the repeatMode and whether shuffling is enabled.

final Timeline.Window
getWindow(int windowIndex, Timeline.Window window)

Populates a Window with data for the window at the specified index.

int
final boolean

Returns whether the timeline is empty.

final boolean
isLastPeriod(
    int periodIndex,
    Timeline.Period period,
    Timeline.Window window,
    @Player.RepeatMode int repeatMode,
    boolean shuffleModeEnabled
)

Returns whether the given period is the last period of the timeline depending on the repeatMode and whether shuffling is enabled.

final Bundle

Returns a representing the information stored in this object.

Public constructors

SinglePeriodTimeline

public SinglePeriodTimeline(
    long durationUs,
    boolean isSeekable,
    boolean isDynamic,
    boolean isLive,
    @Nullable Object manifest,
    @Nullable Object tag
)

SinglePeriodTimeline

public SinglePeriodTimeline(
    long durationUs,
    boolean isSeekable,
    boolean isDynamic,
    boolean useLiveConfiguration,
    @Nullable Object manifest,
    MediaItem mediaItem
)

Creates a timeline containing a single period and a window that spans it.

Parameters
long durationUs

The duration of the period, in microseconds.

boolean isSeekable

Whether seeking is supported within the period.

boolean isDynamic

Whether the window may change when the timeline is updated.

boolean useLiveConfiguration

Whether the window is live and liveConfiguration is used to configure live playback behaviour.

@Nullable Object manifest

The manifest. May be null.

MediaItem mediaItem

A media item used for mediaItem.

SinglePeriodTimeline

public SinglePeriodTimeline(
    long periodDurationUs,
    long windowDurationUs,
    long windowPositionInPeriodUs,
    long windowDefaultStartPositionUs,
    boolean isSeekable,
    boolean isDynamic,
    boolean isLive,
    @Nullable Object manifest,
    @Nullable Object tag
)

SinglePeriodTimeline

public SinglePeriodTimeline(
    long periodDurationUs,
    long windowDurationUs,
    long windowPositionInPeriodUs,
    long windowDefaultStartPositionUs,
    boolean isSeekable,
    boolean isDynamic,
    boolean useLiveConfiguration,
    @Nullable Object manifest,
    MediaItem mediaItem
)

Creates a timeline with one period, and a window of known duration starting at a specified position in the period.

Parameters
long periodDurationUs

The duration of the period in microseconds.

long windowDurationUs

The duration of the window in microseconds.

long windowPositionInPeriodUs

The position of the start of the window in the period, in microseconds.

long windowDefaultStartPositionUs

The default position relative to the start of the window at which to begin playback, in microseconds.

boolean isSeekable

Whether seeking is supported within the window.

boolean isDynamic

Whether the window may change when the timeline is updated.

boolean useLiveConfiguration

Whether the window is live and liveConfiguration is used to configure live playback behaviour.

@Nullable Object manifest

The manifest. May be null.

MediaItem mediaItem

A media item used for mediaItem.

SinglePeriodTimeline

public SinglePeriodTimeline(
    long presentationStartTimeMs,
    long windowStartTimeMs,
    long elapsedRealtimeEpochOffsetMs,
    long periodDurationUs,
    long windowDurationUs,
    long windowPositionInPeriodUs,
    long windowDefaultStartPositionUs,
    boolean isSeekable,
    boolean isDynamic,
    boolean isLive,
    @Nullable Object manifest,
    @Nullable Object tag
)

SinglePeriodTimeline

public SinglePeriodTimeline(
    long presentationStartTimeMs,
    long windowStartTimeMs,
    long elapsedRealtimeEpochOffsetMs,
    long periodDurationUs,
    long windowDurationUs,
    long windowPositionInPeriodUs,
    long windowDefaultStartPositionUs,
    boolean isSeekable,
    boolean isDynamic,
    @Nullable Object manifest,
    MediaItem mediaItem,
    @Nullable MediaItem.LiveConfiguration liveConfiguration
)

SinglePeriodTimeline

public SinglePeriodTimeline(
    long presentationStartTimeMs,
    long windowStartTimeMs,
    long elapsedRealtimeEpochOffsetMs,
    long periodDurationUs,
    long windowDurationUs,
    long windowPositionInPeriodUs,
    long windowDefaultStartPositionUs,
    boolean isSeekable,
    boolean isDynamic,
    boolean suppressPositionProjection,
    @Nullable Object manifest,
    MediaItem mediaItem,
    @Nullable MediaItem.LiveConfiguration liveConfiguration
)

Creates a timeline with one period, and a window of known duration starting at a specified position in the period.

Parameters
long presentationStartTimeMs

The start time of the presentation in milliseconds since the epoch, or TIME_UNSET if unknown or not applicable.

long windowStartTimeMs

The window's start time in milliseconds since the epoch, or TIME_UNSET if unknown or not applicable.

long elapsedRealtimeEpochOffsetMs

The offset between elapsedRealtime and the time since the Unix epoch according to the clock of the media origin server, or TIME_UNSET if unknown or not applicable.

long periodDurationUs

The duration of the period in microseconds.

long windowDurationUs

The duration of the window in microseconds.

long windowPositionInPeriodUs

The position of the start of the window in the period, in microseconds.

long windowDefaultStartPositionUs

The default position relative to the start of the window at which to begin playback, in microseconds.

boolean isSeekable

Whether seeking is supported within the window.

boolean isDynamic

Whether the window may change when the timeline is updated.

boolean suppressPositionProjection

Whether position projection in a playlist should be suppressed. This only applies for dynamic timelines and is ignored otherwise.

@Nullable Object manifest

The manifest. May be null.

MediaItem mediaItem

A media item used for mediaItem.

@Nullable MediaItem.LiveConfiguration liveConfiguration

The configuration for live playback behaviour, or null if the window is not live.

Public methods

getIndexOfPeriod

public int getIndexOfPeriod(Object uid)

Returns the index of the period identified by its unique uid, or INDEX_UNSET if the period is not in the timeline.

Parameters
Object uid

A unique identifier for a period.

Returns
int

The index of the period, or INDEX_UNSET if the period was not found.

getPeriod

public Timeline.Period getPeriod(int periodIndex, Timeline.Period period, boolean setIds)

Populates a Period with data for the period at the specified index.

Parameters
int periodIndex

The index of the period.

Timeline.Period period

The Period to populate. Must not be null.

boolean setIds

Whether id and uid should be populated. If false, the fields will be set to null. The caller should pass false for efficiency reasons unless the fields are required.

Returns
Timeline.Period

The populated Period, for convenience.

getPeriodCount

public int getPeriodCount()

Returns the number of periods in the timeline.

getUidOfPeriod

public Object getUidOfPeriod(int periodIndex)

Returns the unique id of the period identified by its index in the timeline.

Parameters
int periodIndex

The index of the period.

Returns
Object

The unique id of the period.

getWindow

public Timeline.Window getWindow(
    int windowIndex,
    Timeline.Window window,
    long defaultPositionProjectionUs
)

Populates a Window with data for the window at the specified index.

Parameters
int windowIndex

The index of the window.

Timeline.Window window

The Window to populate. Must not be null.

long defaultPositionProjectionUs

A duration into the future that the populated window's default start position should be projected.

Returns
Timeline.Window

The populated Window, for convenience.

getWindowCount

public int getWindowCount()

Returns the number of windows in the timeline.