# Player.PositionInfo

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

*** ** * ** ***

Kotlin \|[Java](https://developer.android.com/reference/androidx/media3/common/Player.PositionInfo "View this page in Java")


```
class Player.PositionInfo
```

<br />

*** ** * ** ***

Position info describing a playback position involved in a discontinuity.

## Summary

| ### Public constructors |
|---|
| `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi [PositionInfo](https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#PositionInfo(java.lang.Object,int,java.lang.Object,int,long,long,int,int))( windowUid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, mediaItemIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, periodUid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, periodIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, positionMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, contentPositionMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, adGroupIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, adIndexInAdGroup: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html )` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#PositionInfo(java.lang.Object,int,androidx.media3.common.MediaItem,java.lang.Object,int,long,long,int,int)` instead. <br /> |
| `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#PositionInfo(java.lang.Object,int,androidx.media3.common.MediaItem,java.lang.Object,int,long,long,int,int)( windowUid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, mediaItemIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, mediaItem: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem?, periodUid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, periodIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, positionMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, contentPositionMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, adGroupIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, adIndexInAdGroup: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html )` Creates an instance. |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#equals(java.lang.Object)(o: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#equalsForBundling(androidx.media3.common.Player.PositionInfo)(other: https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo!)` Returns whether this position info and the other position info would result in the same `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#toBundle(int)`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#filterByAvailableCommands(boolean,boolean)( canAccessCurrentMediaItem: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, canAccessTimeline: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Returns a copy of this position info, filtered by the specified available commands. |
| `java-static https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi [fromBundle](https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#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/Player.PositionInfo#fromBundle(android.os.Bundle,int)` instead. <br /> |
| `java-static https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#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 `PositionInfo` 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/Player.PositionInfo#hashCode()()` |
| `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/Player.PositionInfo#toBundle())()` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#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/Player.PositionInfo#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. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#toString()()` |

| ### Public properties |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#adGroupIndex()` The ad group index if the playback position is within an ad, `https://developer.android.com/reference/kotlin/androidx/media3/common/C#INDEX_UNSET()` otherwise. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#adIndexInAdGroup()` The index of the ad within the ad group if the playback position is within an ad, `https://developer.android.com/reference/kotlin/androidx/media3/common/C#INDEX_UNSET()` otherwise. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#contentPositionMs()` The content position, in milliseconds. |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem?` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#mediaItem()` The media item, or `null` if the timeline is `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#isEmpty()`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#mediaItemIndex()` The media item index. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#periodIndex()` The period index. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#periodUid()` The UID of the period, or `null` if the timeline is `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#isEmpty()`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#positionMs()` The playback position, in milliseconds. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#windowIndex()` **This property is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#mediaItemIndex()` instead. <br /> |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#windowUid()` The UID of the window, or `null` if the timeline is `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#isEmpty()`. |

## Public constructors

### PositionInfo

```
@UnstableApi
[PositionInfo](https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#PositionInfo(java.lang.Object,int,java.lang.Object,int,long,long,int,int))(
    windowUid: Any?,
    mediaItemIndex: Int,
    periodUid: Any?,
    periodIndex: Int,
    positionMs: Long,
    contentPositionMs: Long,
    adGroupIndex: Int,
    adIndexInAdGroup: Int
)
```
| **This function is deprecated.**   
|
| Use `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#PositionInfo(java.lang.Object,int,androidx.media3.common.MediaItem,java.lang.Object,int,long,long,int,int)` instead.

### PositionInfo

```
@UnstableApi
PositionInfo(
    windowUid: Any?,
    mediaItemIndex: Int,
    mediaItem: MediaItem?,
    periodUid: Any?,
    periodIndex: Int,
    positionMs: Long,
    contentPositionMs: Long,
    adGroupIndex: Int,
    adIndexInAdGroup: Int
)
```

Creates an instance.

## Public functions

### equals

```
fun equals(o: Any?): Boolean
```

### equalsForBundling

```
@UnstableApi
fun equalsForBundling(other: Player.PositionInfo!): Boolean
```

Returns whether this position info and the other position info would result in the same `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#toBundle(int)`.

### filterByAvailableCommands

```
@UnstableApi
fun filterByAvailableCommands(
    canAccessCurrentMediaItem: Boolean,
    canAccessTimeline: Boolean
): Player.PositionInfo!
```

Returns a copy of this position info, filtered by the specified available commands.

The filtered fields are reset to their default values.

The return value may be the same object if nothing is filtered.

| Parameters |
|---|---|
| `canAccessCurrentMediaItem: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#COMMAND_GET_CURRENT_MEDIA_ITEM()` is available. |
| `canAccessTimeline: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#COMMAND_GET_TIMELINE()` is available. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo!` | The filtered position info. |

### fromBundle

```
@UnstableApi
java-static fun [fromBundle](https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#fromBundle(android.os.Bundle))(bundle: Bundle!): Player.PositionInfo!
```
| **This function is deprecated.**   
|
| Use `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#fromBundle(android.os.Bundle,int)` instead.

### fromBundle

```
@UnstableApi
java-static fun fromBundle(bundle: Bundle!, interfaceVersion: Int): Player.PositionInfo!
```

Restores a `PositionInfo` from a `https://developer.android.com/reference/android/os/Bundle.html`.

| Parameters |
|---|---|
| `bundle: https://developer.android.com/reference/android/os/Bundle.html!` | The `https://developer.android.com/reference/android/os/Bundle.html`. |
| `interfaceVersion: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaLibraryInfo#INTERFACE_VERSION()` of the sending process. |

### hashCode

```
fun hashCode(): Int
```

### toBundle

```
@UnstableApi
fun [toBundle](https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#toBundle())(): Bundle!
```
| **This function is deprecated.**   
|
| Use `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#toBundle(int)` instead.

### toBundle

```
@UnstableApi
fun toBundle(interfaceVersion: Int): Bundle!
```

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

It omits the `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#windowUid()` and `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#periodUid()` fields. The `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#windowUid()` and `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#periodUid()` of an instance restored by `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#fromBundle(android.os.Bundle,int)` will always be `null`.

| Parameters |
|---|---|
| `interfaceVersion: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaLibraryInfo#INTERFACE_VERSION()` of the receiving process. |

### toString

```
fun toString(): String!
```

## Public properties

### adGroupIndex

```
val adGroupIndex: Int
```

The ad group index if the playback position is within an ad, `https://developer.android.com/reference/kotlin/androidx/media3/common/C#INDEX_UNSET()` otherwise.

### adIndexInAdGroup

```
val adIndexInAdGroup: Int
```

The index of the ad within the ad group if the playback position is within an ad, `https://developer.android.com/reference/kotlin/androidx/media3/common/C#INDEX_UNSET()` otherwise.

### contentPositionMs

```
val contentPositionMs: Long
```

The content position, in milliseconds.

If `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#adGroupIndex()` is `https://developer.android.com/reference/kotlin/androidx/media3/common/C#INDEX_UNSET()`, this is the same as `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#positionMs()`.

### mediaItem

```
@UnstableApi
val mediaItem: MediaItem?
```

The media item, or `null` if the timeline is `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#isEmpty()`.

### mediaItemIndex

```
val mediaItemIndex: Int
```

The media item index.

### periodIndex

```
val periodIndex: Int
```

The period index.

### periodUid

```
val periodUid: Any?
```

The UID of the period, or `null` if the timeline is `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#isEmpty()`.

### positionMs

```
val positionMs: Long
```

The playback position, in milliseconds.

### windowIndex

```
@UnstableApi
val windowIndex: Int
```
| **This property is deprecated.**   
|
| Use `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.PositionInfo#mediaItemIndex()` instead.

### windowUid

```
val windowUid: Any?
```

The UID of the window, or `null` if the timeline is `https://developer.android.com/reference/kotlin/androidx/media3/common/Timeline#isEmpty()`.