# PlayerTransferState

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/PlayerTransferState.java+class:androidx.media3.common.PlayerTransferState)

*** ** * ** ***


```
@UnstableApi
public final class PlayerTransferState
```

<br />

*** ** * ** ***

Holds a snapshot of a `https://developer.android.com/reference/androidx/media3/common/Player` transferable state.

We define transferable state to be state that should be carried over from one player to another when transferring playback. For example, the media playlist and the playback position are part of the transferable state. However, the buffering position is part of the player's state but it's not state we carry over when moving playback.

This class is useful when moving playback across devices. For example, across an Android device and a Cast receiver.

## Summary

| ### Nested types |
|---|
| `public final class https://developer.android.com/reference/androidx/media3/common/PlayerTransferState.Builder` Builder for `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState`. |

| ### Public fields |
|---|---|
| `final int` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#currentMediaItemIndex()` |
| `final long` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#currentPosition()` |
| `final https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/ImmutableList.html<https://developer.android.com/reference/androidx/media3/common/MediaItem>` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#mediaItems()` |
| `final boolean` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#playWhenReady()` |
| `final https://developer.android.com/reference/androidx/media3/common/PlaybackParameters` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#playbackParameters()` |
| `final https://developer.android.com/reference/androidx/media3/common/MediaMetadata` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#playlistMetadata()` |
| `final int` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#repeatMode()` |
| `final boolean` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#shuffleModeEnabled()` |
| `final https://developer.android.com/reference/androidx/media3/common/TrackSelectionParameters` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#trackSelectionParameters()` |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState.Builder` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#buildUpon()()` Returns a `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState.Builder` pre-populated with the current state values. |
| `static https://developer.android.com/reference/androidx/media3/common/PlayerTransferState.Builder` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#builderFromPlayer(androidx.media3.common.Player)(https://developer.android.com/reference/androidx/media3/common/Player player)` Creates a new `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState.Builder` that's pre-populated with the values from the given `https://developer.android.com/reference/androidx/media3/common/Player`. |
| `boolean` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#equals(java.lang.Object)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/Object.html o)` |
| `static https://developer.android.com/reference/androidx/media3/common/PlayerTransferState` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#fromPlayer(androidx.media3.common.Player)(https://developer.android.com/reference/androidx/media3/common/Player player)` Equivalent to `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#builderFromPlayer(androidx.media3.common.Player)`. |
| `int` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#getCurrentMediaItemIndex()()` Returns the `https://developer.android.com/reference/androidx/media3/common/Player#getCurrentMediaItemIndex()`. |
| `long` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#getCurrentPosition()()` Returns the `https://developer.android.com/reference/androidx/media3/common/Player#getCurrentPosition()`. |
| `https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/ImmutableList.html<https://developer.android.com/reference/androidx/media3/common/MediaItem>` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#getMediaItems()()` Returns the `https://developer.android.com/reference/androidx/media3/common/Player#getMediaItemAt(int)`. |
| `boolean` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#getPlayWhenReady()()` Returns the `https://developer.android.com/reference/androidx/media3/common/Player#getPlayWhenReady()`. |
| `https://developer.android.com/reference/androidx/media3/common/PlaybackParameters` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#getPlaybackParameters()()` Returns the `https://developer.android.com/reference/androidx/media3/common/Player#getPlaybackParameters()`. |
| `https://developer.android.com/reference/androidx/media3/common/MediaMetadata` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#getPlaylistMetadata()()` Returns the `https://developer.android.com/reference/androidx/media3/common/Player#getPlaylistMetadata()`. |
| `int` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#getRepeatMode()()` Returns the `https://developer.android.com/reference/androidx/media3/common/Player#getRepeatMode()`. |
| `boolean` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#getShuffleModeEnabled()()` Returns the `https://developer.android.com/reference/androidx/media3/common/Player#getShuffleModeEnabled()`. |
| `https://developer.android.com/reference/androidx/media3/common/TrackSelectionParameters` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#getTrackSelectionParameters()()` Returns the `https://developer.android.com/reference/androidx/media3/common/Player#getTrackSelectionParameters()`. |
| `int` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#hashCode()()` |
| `void` | `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#setToPlayer(androidx.media3.common.Player)(https://developer.android.com/reference/androidx/media3/common/Player player)` Applies this state to a given `https://developer.android.com/reference/androidx/media3/common/Player` instance by calling the corresponding setters. |

## Public fields

### currentMediaItemIndex

```
public final int currentMediaItemIndex
```

### currentPosition

```
public final long currentPosition
```

### mediaItems

```
public final ImmutableList<MediaItem> mediaItems
```

### playWhenReady

```
public final boolean playWhenReady
```

### playbackParameters

```
public final PlaybackParameters playbackParameters
```

### playlistMetadata

```
public final MediaMetadata playlistMetadata
```

### repeatMode

```
public final int repeatMode
```

### shuffleModeEnabled

```
public final boolean shuffleModeEnabled
```

### trackSelectionParameters

```
public final TrackSelectionParameters trackSelectionParameters
```

## Public methods

### buildUpon

```
public PlayerTransferState.Builder buildUpon()
```

Returns a `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState.Builder` pre-populated with the current state values.

### builderFromPlayer

```
public static PlayerTransferState.Builder builderFromPlayer(Player player)
```

Creates a new `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState.Builder` that's pre-populated with the values from the given `https://developer.android.com/reference/androidx/media3/common/Player`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player player` | The `https://developer.android.com/reference/androidx/media3/common/Player` instance to populate the builder from. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState.Builder` | A new `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState.Builder` instance populated with the given player's current state. |

### equals

```
public boolean equals(@Nullable Object o)
```

### fromPlayer

```
public static PlayerTransferState fromPlayer(Player player)
```

Equivalent to `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState#builderFromPlayer(androidx.media3.common.Player)`.

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState` | A `https://developer.android.com/reference/androidx/media3/common/PlayerTransferState` whose contents are populated with the state from the given `https://developer.android.com/reference/androidx/media3/common/Player`. |

### getCurrentMediaItemIndex

```
public int getCurrentMediaItemIndex()
```

Returns the `https://developer.android.com/reference/androidx/media3/common/Player#getCurrentMediaItemIndex()`.

### getCurrentPosition

```
public long getCurrentPosition()
```

Returns the `https://developer.android.com/reference/androidx/media3/common/Player#getCurrentPosition()`.

### getMediaItems

```
public ImmutableList<MediaItem> getMediaItems()
```

Returns the `https://developer.android.com/reference/androidx/media3/common/Player#getMediaItemAt(int)`.

### getPlayWhenReady

```
public boolean getPlayWhenReady()
```

Returns the `https://developer.android.com/reference/androidx/media3/common/Player#getPlayWhenReady()`.

### getPlaybackParameters

```
public PlaybackParameters getPlaybackParameters()
```

Returns the `https://developer.android.com/reference/androidx/media3/common/Player#getPlaybackParameters()`.

### getPlaylistMetadata

```
public MediaMetadata getPlaylistMetadata()
```

Returns the `https://developer.android.com/reference/androidx/media3/common/Player#getPlaylistMetadata()`.

### getRepeatMode

```
public int getRepeatMode()
```

Returns the `https://developer.android.com/reference/androidx/media3/common/Player#getRepeatMode()`.

### getShuffleModeEnabled

```
public boolean getShuffleModeEnabled()
```

Returns the `https://developer.android.com/reference/androidx/media3/common/Player#getShuffleModeEnabled()`.

### getTrackSelectionParameters

```
public TrackSelectionParameters getTrackSelectionParameters()
```

Returns the `https://developer.android.com/reference/androidx/media3/common/Player#getTrackSelectionParameters()`.

### hashCode

```
public int hashCode()
```

### setToPlayer

```
public void setToPlayer(Player player)
```

Applies this state to a given `https://developer.android.com/reference/androidx/media3/common/Player` instance by calling the corresponding setters.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Player player` | The `https://developer.android.com/reference/androidx/media3/common/Player` instance to which the state should be applied. |