# SinglePeriodTimeline

Artifact: [androidx.media3:media3-exoplayer](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/exoplayer/source/SinglePeriodTimeline.java+class:androidx.media3.exoplayer.source.SinglePeriodTimeline)

*** ** * ** ***


```
@UnstableApi
class SinglePeriodTimeline : Timeline
```

<br />

|---|---|---|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html) |||
| ↳ | [androidx.media3.common.Timeline](https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline) ||
|   | ↳ | [androidx.media3.exoplayer.source.SinglePeriodTimeline](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline) |

*** ** * ** ***

A `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline` consisting of a single period and static window.

## Summary

| ### Public constructors |
|---|
| `[SinglePeriodTimeline](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#SinglePeriodTimeline(long,boolean,boolean,boolean,java.lang.Object,java.lang.Object))( durationUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, isSeekable: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, isDynamic: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, isLive: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, manifest: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, tag: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html? )` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#SinglePeriodTimeline(long,boolean,boolean,boolean,java.lang.Object,androidx.media3.common.MediaItem)` instead. <br /> |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#SinglePeriodTimeline(long,boolean,boolean,boolean,java.lang.Object,androidx.media3.common.MediaItem)( durationUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, isSeekable: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, isDynamic: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, useLiveConfiguration: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, manifest: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, mediaItem: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem! )` Creates a timeline containing a single period and a window that spans it. |
| `[SinglePeriodTimeline](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#SinglePeriodTimeline(long,long,long,long,boolean,boolean,boolean,java.lang.Object,java.lang.Object))( periodDurationUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, windowDurationUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, windowPositionInPeriodUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, windowDefaultStartPositionUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, isSeekable: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, isDynamic: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, isLive: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, manifest: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, tag: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html? )` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#SinglePeriodTimeline(long,long,long,long,boolean,boolean,boolean,java.lang.Object,androidx.media3.common.MediaItem)` instead. <br /> |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#SinglePeriodTimeline(long,long,long,long,boolean,boolean,boolean,java.lang.Object,androidx.media3.common.MediaItem)( periodDurationUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, windowDurationUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, windowPositionInPeriodUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, windowDefaultStartPositionUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, isSeekable: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, isDynamic: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, useLiveConfiguration: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, manifest: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, mediaItem: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem! )` Creates a timeline with one period, and a window of known duration starting at a specified position in the period. |
| `[SinglePeriodTimeline](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#SinglePeriodTimeline(long,long,long,long,long,long,long,boolean,boolean,boolean,java.lang.Object,java.lang.Object))( presentationStartTimeMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, windowStartTimeMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, elapsedRealtimeEpochOffsetMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, periodDurationUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, windowDurationUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, windowPositionInPeriodUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, windowDefaultStartPositionUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, isSeekable: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, isDynamic: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, isLive: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, manifest: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, tag: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html? )` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#SinglePeriodTimeline(long,long,long,long,long,long,long,boolean,boolean,boolean,java.lang.Object,androidx.media3.common.MediaItem,androidx.media3.common.MediaItem.LiveConfiguration)` instead. <br /> |
| `[SinglePeriodTimeline](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#SinglePeriodTimeline(long,long,long,long,long,long,long,boolean,boolean,java.lang.Object,androidx.media3.common.MediaItem,androidx.media3.common.MediaItem.LiveConfiguration))( presentationStartTimeMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, windowStartTimeMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, elapsedRealtimeEpochOffsetMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, periodDurationUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, windowDurationUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, windowPositionInPeriodUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, windowDefaultStartPositionUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, isSeekable: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, isDynamic: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, manifest: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, mediaItem: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!, liveConfiguration: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.LiveConfiguration? )` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#SinglePeriodTimeline(long,long,long,long,long,long,long,boolean,boolean,boolean,java.lang.Object,androidx.media3.common.MediaItem,androidx.media3.common.MediaItem.LiveConfiguration)` instead. <br /> |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#SinglePeriodTimeline(long,long,long,long,long,long,long,boolean,boolean,boolean,java.lang.Object,androidx.media3.common.MediaItem,androidx.media3.common.MediaItem.LiveConfiguration)( presentationStartTimeMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, windowStartTimeMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, elapsedRealtimeEpochOffsetMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, periodDurationUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, windowDurationUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, windowPositionInPeriodUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, windowDefaultStartPositionUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, isSeekable: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, isDynamic: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, suppressPositionProjection: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, manifest: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, mediaItem: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!, liveConfiguration: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.LiveConfiguration? )` Creates a timeline with one period, and a window of known duration starting at a specified position in the period. |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#getIndexOfPeriod(java.lang.Object)(uid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!)` Returns the index of the period identified by its unique `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period#uid()`, or `https://developer.android.com/reference/kotlin/androidx/media3/common/C#INDEX_UNSET()` if the period is not in the timeline. |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period!` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#getPeriod(int,androidx.media3.common.Timeline.Period,boolean)(periodIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, period: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period!, setIds: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Populates a `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period` with data for the period at the specified index. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#getPeriodCount()()` Returns the number of periods in the timeline. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#getUidOfPeriod(int)(periodIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Returns the unique id of the period identified by its index in the timeline. |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Window!` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#getWindow(int,androidx.media3.common.Timeline.Window,long)( windowIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, window: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Window!, defaultPositionProjectionUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Populates a `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Window` with data for the window at the specified index. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#getWindowCount()()` Returns the number of windows in the timeline. |

### Inherited Constants

From [androidx.media3.common.Timeline](https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline) `const https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline!` `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#EMPTY()`

An empty timeline.

### Inherited functions

From [androidx.media3.common.Timeline](https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline) `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline!` `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi
https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#copyWithSingleWindow(int)(windowIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`

Returns a copy of this timeline containing just the single specified `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Window`.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#equals(java.lang.Object)(obj: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)` `java-static https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline!` `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi
[fromBundle](https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#fromBundle(android.os.Bundle))(bundle: https://developer.android.com/reference/android/os/Bundle.html!)`

**This function is deprecated.**

Use `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#fromBundle(android.os.Bundle,int)` instead.

<br />

`java-static https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline!` `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi
https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#fromBundle(android.os.Bundle,int)(bundle: https://developer.android.com/reference/android/os/Bundle.html!, interfaceVersion: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`

Restores a `Timeline` from a `https://developer.android.com/reference/android/os/Bundle.html`.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#getFirstWindowIndex(boolean)(shuffleModeEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`

Returns the index of the first window in the playback order depending on whether shuffling is enabled.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#getLastWindowIndex(boolean)(shuffleModeEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`

Returns the index of the last window in the playback order depending on whether shuffling is enabled.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#getNextPeriodIndex(int,androidx.media3.common.Timeline.Period,androidx.media3.common.Timeline.Window,int,boolean)(
periodIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,
period: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period!,
window: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Window!,
@https://developer.android.com/reference/kotlin/androidx/media3/common/Player.RepeatMode repeatMode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,
shuffleModeEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html
)`

Returns the index of the period after the period at index `periodIndex` depending on the `repeatMode` and whether shuffling is enabled.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#getNextWindowIndex(int,int,boolean)(
windowIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,
@https://developer.android.com/reference/kotlin/androidx/media3/common/Player.RepeatMode repeatMode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,
shuffleModeEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html
)`

Returns the index of the window after the window at index `windowIndex` depending on the `repeatMode` and whether shuffling is enabled.
`https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period!` `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#getPeriod(int,androidx.media3.common.Timeline.Period)(periodIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, period: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period!)`

Populates a `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period` with data for the period at the specified index.
`https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period!` `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#getPeriodByUid(java.lang.Object,androidx.media3.common.Timeline.Period)(periodUid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!, period: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period!)`

Populates a `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period` with data for the period with the specified unique identifier.
`https://developer.android.com/reference/android/util/Pair.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html!>!` `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi
@https://checkerframework.org/api/com/google/errorprone/annotations/InlineMe.html(replacement = "this.getPeriodPositionUs(window, period, windowIndex, windowPositionUs)")
[getPeriodPosition](https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#getPeriodPosition(androidx.media3.common.Timeline.Window,androidx.media3.common.Timeline.Period,int,long))(
window: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Window!,
period: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period!,
windowIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,
windowPositionUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html
)`

**This function is deprecated.**

Use `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#getPeriodPositionUs(androidx.media3.common.Timeline.Window,androidx.media3.common.Timeline.Period,int,long)` instead.

<br />

`https://developer.android.com/reference/android/util/Pair.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html!>?` `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi
@https://checkerframework.org/api/com/google/errorprone/annotations/InlineMe.html(replacement = "this.getPeriodPositionUs("
+ "window, period, windowIndex, windowPositionUs, defaultPositionProjectionUs)")
[getPeriodPosition](https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#getPeriodPosition(androidx.media3.common.Timeline.Window,androidx.media3.common.Timeline.Period,int,long,long))(
window: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Window!,
period: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period!,
windowIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,
windowPositionUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html,
defaultPositionProjectionUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html
)`

**This function is deprecated.**

Use `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#getPeriodPositionUs(androidx.media3.common.Timeline.Window,androidx.media3.common.Timeline.Period,int,long,long)` instead.

<br />

`https://developer.android.com/reference/android/util/Pair.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html!>!` `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#getPeriodPositionUs(androidx.media3.common.Timeline.Window,androidx.media3.common.Timeline.Period,int,long)(
window: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Window!,
period: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period!,
windowIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,
windowPositionUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html
)`

Calls `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#getPeriodPositionUs(androidx.media3.common.Timeline.Window,androidx.media3.common.Timeline.Period,int,long)` with a zero default position projection.
`https://developer.android.com/reference/android/util/Pair.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html!>?` `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#getPeriodPositionUs(androidx.media3.common.Timeline.Window,androidx.media3.common.Timeline.Period,int,long,long)(
window: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Window!,
period: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period!,
windowIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,
windowPositionUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html,
defaultPositionProjectionUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html
)`

Converts `(windowIndex, windowPositionUs)` to the corresponding `(periodUid,
periodPositionUs)`.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#getPreviousWindowIndex(int,int,boolean)(
windowIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,
@https://developer.android.com/reference/kotlin/androidx/media3/common/Player.RepeatMode repeatMode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,
shuffleModeEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html
)`

Returns the index of the window before the window at index `windowIndex` depending on the `repeatMode` and whether shuffling is enabled.
`https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Window!` `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#getWindow(int,androidx.media3.common.Timeline.Window)(windowIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, window: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Window!)`

Populates a `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Window` with data for the window at the specified index.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#hashCode()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#isEmpty()()`

Returns whether the timeline is empty.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#isLastPeriod(int,androidx.media3.common.Timeline.Period,androidx.media3.common.Timeline.Window,int,boolean)(
periodIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,
period: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period!,
window: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Window!,
@https://developer.android.com/reference/kotlin/androidx/media3/common/Player.RepeatMode repeatMode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,
shuffleModeEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html
)`

Returns whether the given period is the last period of the timeline depending on the `
repeatMode` and whether shuffling is enabled.
`https://developer.android.com/reference/android/os/Bundle.html!` `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi
[toBundle](https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#toBundle())()`

**This function is deprecated.**

Use `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#toBundle(int)` instead.

<br />

`https://developer.android.com/reference/android/os/Bundle.html!` `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi
https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#toBundle(int)(interfaceVersion: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`

Returns a `https://developer.android.com/reference/android/os/Bundle.html` representing the information stored in this object.

## Public constructors

### SinglePeriodTimeline

```
[SinglePeriodTimeline](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#SinglePeriodTimeline(long,boolean,boolean,boolean,java.lang.Object,java.lang.Object))(
    durationUs: Long,
    isSeekable: Boolean,
    isDynamic: Boolean,
    isLive: Boolean,
    manifest: Any?,
    tag: Any?
)
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#SinglePeriodTimeline(long,boolean,boolean,boolean,java.lang.Object,androidx.media3.common.MediaItem)` instead.

### SinglePeriodTimeline

```
SinglePeriodTimeline(
    durationUs: Long,
    isSeekable: Boolean,
    isDynamic: Boolean,
    useLiveConfiguration: Boolean,
    manifest: Any?,
    mediaItem: MediaItem!
)
```

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

| Parameters |
|---|---|
| `durationUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The duration of the period, in microseconds. |
| `isSeekable: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether seeking is supported within the period. |
| `isDynamic: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether the window may change when the timeline is updated. |
| `useLiveConfiguration: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether the window is live and `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#liveConfiguration()` is used to configure live playback behaviour. |
| `manifest: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | The manifest. May be `null`. |
| `mediaItem: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!` | A media item used for `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Window#mediaItem()`. |

### SinglePeriodTimeline

```
[SinglePeriodTimeline](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#SinglePeriodTimeline(long,long,long,long,boolean,boolean,boolean,java.lang.Object,java.lang.Object))(
    periodDurationUs: Long,
    windowDurationUs: Long,
    windowPositionInPeriodUs: Long,
    windowDefaultStartPositionUs: Long,
    isSeekable: Boolean,
    isDynamic: Boolean,
    isLive: Boolean,
    manifest: Any?,
    tag: Any?
)
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#SinglePeriodTimeline(long,long,long,long,boolean,boolean,boolean,java.lang.Object,androidx.media3.common.MediaItem)` instead.

### SinglePeriodTimeline

```
SinglePeriodTimeline(
    periodDurationUs: Long,
    windowDurationUs: Long,
    windowPositionInPeriodUs: Long,
    windowDefaultStartPositionUs: Long,
    isSeekable: Boolean,
    isDynamic: Boolean,
    useLiveConfiguration: Boolean,
    manifest: Any?,
    mediaItem: MediaItem!
)
```

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

| Parameters |
|---|---|
| `periodDurationUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The duration of the period in microseconds. |
| `windowDurationUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The duration of the window in microseconds. |
| `windowPositionInPeriodUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The position of the start of the window in the period, in microseconds. |
| `windowDefaultStartPositionUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The default position relative to the start of the window at which to begin playback, in microseconds. |
| `isSeekable: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether seeking is supported within the window. |
| `isDynamic: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether the window may change when the timeline is updated. |
| `useLiveConfiguration: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether the window is live and `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#liveConfiguration()` is used to configure live playback behaviour. |
| `manifest: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | The manifest. May be `null`. |
| `mediaItem: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!` | A media item used for `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Window#mediaItem()`. |

### SinglePeriodTimeline

```
[SinglePeriodTimeline](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#SinglePeriodTimeline(long,long,long,long,long,long,long,boolean,boolean,boolean,java.lang.Object,java.lang.Object))(
    presentationStartTimeMs: Long,
    windowStartTimeMs: Long,
    elapsedRealtimeEpochOffsetMs: Long,
    periodDurationUs: Long,
    windowDurationUs: Long,
    windowPositionInPeriodUs: Long,
    windowDefaultStartPositionUs: Long,
    isSeekable: Boolean,
    isDynamic: Boolean,
    isLive: Boolean,
    manifest: Any?,
    tag: Any?
)
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#SinglePeriodTimeline(long,long,long,long,long,long,long,boolean,boolean,boolean,java.lang.Object,androidx.media3.common.MediaItem,androidx.media3.common.MediaItem.LiveConfiguration)` instead.

### SinglePeriodTimeline

```
[SinglePeriodTimeline](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#SinglePeriodTimeline(long,long,long,long,long,long,long,boolean,boolean,java.lang.Object,androidx.media3.common.MediaItem,androidx.media3.common.MediaItem.LiveConfiguration))(
    presentationStartTimeMs: Long,
    windowStartTimeMs: Long,
    elapsedRealtimeEpochOffsetMs: Long,
    periodDurationUs: Long,
    windowDurationUs: Long,
    windowPositionInPeriodUs: Long,
    windowDefaultStartPositionUs: Long,
    isSeekable: Boolean,
    isDynamic: Boolean,
    manifest: Any?,
    mediaItem: MediaItem!,
    liveConfiguration: MediaItem.LiveConfiguration?
)
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#SinglePeriodTimeline(long,long,long,long,long,long,long,boolean,boolean,boolean,java.lang.Object,androidx.media3.common.MediaItem,androidx.media3.common.MediaItem.LiveConfiguration)` instead.

### SinglePeriodTimeline

```
SinglePeriodTimeline(
    presentationStartTimeMs: Long,
    windowStartTimeMs: Long,
    elapsedRealtimeEpochOffsetMs: Long,
    periodDurationUs: Long,
    windowDurationUs: Long,
    windowPositionInPeriodUs: Long,
    windowDefaultStartPositionUs: Long,
    isSeekable: Boolean,
    isDynamic: Boolean,
    suppressPositionProjection: Boolean,
    manifest: Any?,
    mediaItem: MediaItem!,
    liveConfiguration: MediaItem.LiveConfiguration?
)
```

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

| Parameters |
|---|---|
| `presentationStartTimeMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The start time of the presentation in milliseconds since the epoch, or `https://developer.android.com/reference/kotlin/androidx/media3/common/C#TIME_UNSET()` if unknown or not applicable. |
| `windowStartTimeMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The window's start time in milliseconds since the epoch, or `https://developer.android.com/reference/kotlin/androidx/media3/common/C#TIME_UNSET()` if unknown or not applicable. |
| `elapsedRealtimeEpochOffsetMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The offset between `https://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtime()` and the time since the Unix epoch according to the clock of the media origin server, or `https://developer.android.com/reference/kotlin/androidx/media3/common/C#TIME_UNSET()` if unknown or not applicable. |
| `periodDurationUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The duration of the period in microseconds. |
| `windowDurationUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The duration of the window in microseconds. |
| `windowPositionInPeriodUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The position of the start of the window in the period, in microseconds. |
| `windowDefaultStartPositionUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The default position relative to the start of the window at which to begin playback, in microseconds. |
| `isSeekable: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether seeking is supported within the window. |
| `isDynamic: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether the window may change when the timeline is updated. |
| `suppressPositionProjection: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SinglePeriodTimeline#getWindow(int,androidx.media3.common.Timeline.Window,long)` in a playlist should be suppressed. This only applies for dynamic timelines and is ignored otherwise. |
| `manifest: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | The manifest. May be `null`. |
| `mediaItem: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!` | A media item used for `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Window#mediaItem()`. |
| `liveConfiguration: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.LiveConfiguration?` | The configuration for live playback behaviour, or `null` if the window is not live. |

## Public functions

### getIndexOfPeriod

```
fun getIndexOfPeriod(uid: Any!): Int
```

Returns the index of the period identified by its unique `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period#uid()`, or `https://developer.android.com/reference/kotlin/androidx/media3/common/C#INDEX_UNSET()` if the period is not in the timeline.

| Parameters |
|---|---|
| `uid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!` | A unique identifier for a period. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The index of the period, or `https://developer.android.com/reference/kotlin/androidx/media3/common/C#INDEX_UNSET()` if the period was not found. |

### getPeriod

```
fun getPeriod(periodIndex: Int, period: Timeline.Period!, setIds: Boolean): Timeline.Period!
```

Populates a `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period` with data for the period at the specified index.

| Parameters |
|---|---|
| `periodIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The index of the period. |
| `period: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period!` | The `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period` to populate. Must not be null. |
| `setIds: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period#id()` and `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period#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 |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period!` | The populated `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Period`, for convenience. |

### getPeriodCount

```
fun getPeriodCount(): Int
```

Returns the number of periods in the timeline.

### getUidOfPeriod

```
fun getUidOfPeriod(periodIndex: Int): Any!
```

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

| Parameters |
|---|---|
| `periodIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The index of the period. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!` | The unique id of the period. |

### getWindow

```
fun getWindow(
    windowIndex: Int,
    window: Timeline.Window!,
    defaultPositionProjectionUs: Long
): Timeline.Window!
```

Populates a `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Window` with data for the window at the specified index.

| Parameters |
|---|---|
| `windowIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The index of the window. |
| `window: https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Window!` | The `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Window` to populate. Must not be null. |
| `defaultPositionProjectionUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | A duration into the future that the populated window's default start position should be projected. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Window!` | The populated `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline.Window`, for convenience. |

### getWindowCount

```
fun getWindowCount(): Int
```

Returns the number of windows in the timeline.