# PlaybackStateCompat.Builder

Artifact: [androidx.media:media](https://developer.android.com/jetpack/androidx/releases/media) [View Source](https://cs.android.com/search?q=file:android/support/v4/media/session/PlaybackStateCompat.java+class:android.support.v4.media.session.PlaybackStateCompat.Builder) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

*** ** * ** ***


```
public final class PlaybackStateCompat.Builder
```

<br />

*** ** * ** ***

> [!CAUTION]
> **This class is deprecated.**   
>
> androidx.media is deprecated. Please migrate to [androidx.media3](https://developer.android.com/media/media3).

Builder for `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat` objects.

## Summary

| ### Public constructors |
|---|
| `[Builder](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#Builder())()` **This method is deprecated.** Deprecated in Java |
| `[Builder](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#Builder(android.support.v4.media.session.PlaybackStateCompat))(https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat source)` **This method is deprecated.** Deprecated in Java |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder` | `[addCustomAction](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#addCustomAction(android.support.v4.media.session.PlaybackStateCompat.CustomAction))(https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.CustomAction customAction)` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder` | `[addCustomAction](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#addCustomAction(java.lang.String,java.lang.String,int))(https://developer.android.com/reference/java/lang/String.html action, https://developer.android.com/reference/java/lang/String.html name, int icon)` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat` | `[build](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#build())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder` | `[setActions](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#setActions(long))(long capabilities)` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder` | `[setActiveQueueItemId](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#setActiveQueueItemId(long))(long id)` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder` | `[setBufferedPosition](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#setBufferedPosition(long))(long bufferPosition)` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder` | `[setErrorMessage](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#setErrorMessage(java.lang.CharSequence))(https://developer.android.com/reference/java/lang/CharSequence.html errorMessage)` **This method is deprecated.** Use `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#setErrorMessage(int,java.lang.CharSequence)` instead. <br /> |
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder` | `[setErrorMessage](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#setErrorMessage(int,java.lang.CharSequence))(int errorCode, https://developer.android.com/reference/java/lang/CharSequence.html errorMessage)` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder` | `[setExtras](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#setExtras(android.os.Bundle))(https://developer.android.com/reference/android/os/Bundle.html extras)` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder` | `[setState](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#setState(int,long,float))(int state, long position, float playbackSpeed)` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder` | `[setState](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#setState(int,long,float,long))(int state, long position, float playbackSpeed, long updateTime)` **This method is deprecated.** Deprecated in Java |

## Public constructors

### Builder

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public [Builder](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#Builder())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Create an empty Builder.

### Builder

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public [Builder](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#Builder(android.support.v4.media.session.PlaybackStateCompat))(PlaybackStateCompat source)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Create a Builder using a `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat` instance to set the initial values.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat source` | The playback state to copy. |

## Public methods

### addCustomAction

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public PlaybackStateCompat.Builder [addCustomAction](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#addCustomAction(android.support.v4.media.session.PlaybackStateCompat.CustomAction))(PlaybackStateCompat.CustomAction customAction)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Add a custom action to the playback state. Actions can be used to expose additional functionality to `https://developer.android.com/reference/android/support/v4/media/session/MediaControllerCompat` beyond what is offered by the standard transport controls.

An example of an action would be to start a radio station based on the current item or to skip ahead by 30 seconds.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.CustomAction customAction` | The custom action to add to the `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder` | this |

### addCustomAction

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public PlaybackStateCompat.Builder [addCustomAction](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#addCustomAction(java.lang.String,java.lang.String,int))(String action, String name, int icon)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Add a custom action to the playback state. Actions can be used to expose additional functionality to `https://developer.android.com/reference/android/support/v4/media/session/MediaControllerCompat` beyond what is offered by the standard transport controls.

e.g. start a radio station based on the current item or skip ahead by 30 seconds.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/lang/String.html action` | An identifier for this action. It can be sent back to the `https://developer.android.com/reference/android/support/v4/media/session/MediaSessionCompat` through `https://developer.android.com/reference/android/support/v4/media/session/MediaControllerCompat.TransportControls#sendCustomAction(java.lang.String,android.os.Bundle)`. |
| `https://developer.android.com/reference/java/lang/String.html name` | The display name for the action. If text is shown with the action or used for accessibility, this is what should be used. |
| `int icon` | The resource action of the icon that should be displayed for the action. The resource should be in the package of the `https://developer.android.com/reference/android/support/v4/media/session/MediaSessionCompat`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder` | this |

### build

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public PlaybackStateCompat [build](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#build())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Creates the playback state object.

### setActions

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public PlaybackStateCompat.Builder [setActions](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#setActions(long))(long capabilities)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Set the current capabilities available on this session. This should use a bitmask of the available capabilities.

- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_SKIP_TO_PREVIOUS()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_REWIND()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_PLAY()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_PLAY_PAUSE()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_PAUSE()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_STOP()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_FAST_FORWARD()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_SKIP_TO_NEXT()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_SEEK_TO()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_SET_RATING()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_PLAY_FROM_MEDIA_ID()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_PLAY_FROM_SEARCH()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_SKIP_TO_QUEUE_ITEM()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_PLAY_FROM_URI()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_PREPARE()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_PREPARE_FROM_MEDIA_ID()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_PREPARE_FROM_SEARCH()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_PREPARE_FROM_URI()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_SET_REPEAT_MODE()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_SET_SHUFFLE_MODE()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_SET_CAPTIONING_ENABLED()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#ACTION_SET_PLAYBACK_SPEED()`

| Returns |
|---|---|
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder` | this |

### setActiveQueueItemId

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public PlaybackStateCompat.Builder [setActiveQueueItemId](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#setActiveQueueItemId(long))(long id)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Set the active item in the play queue by specifying its id. The default value is `https://developer.android.com/reference/android/support/v4/media/session/MediaSessionCompat.QueueItem#UNKNOWN_ID()`

| Parameters |
|---|---|
| `long id` | The id of the active item. |

| Returns |
|---|---|
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder` | this |

### setBufferedPosition

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public PlaybackStateCompat.Builder [setBufferedPosition](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#setBufferedPosition(long))(long bufferPosition)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Set the current buffered position in ms. This is the farthest playback point that can be reached from the current position using only buffered content.

| Returns |
|---|---|
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder` | this |

### setErrorMessage

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0)

```
public PlaybackStateCompat.Builder [setErrorMessage](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#setErrorMessage(java.lang.CharSequence))(CharSequence errorMessage)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#setErrorMessage(int,java.lang.CharSequence)` instead.

Set a user readable error message. This should be set when the state is `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_ERROR()`.

| Returns |
|---|---|
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder` | this |

### setErrorMessage

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public PlaybackStateCompat.Builder [setErrorMessage](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#setErrorMessage(int,java.lang.CharSequence))(int errorCode, CharSequence errorMessage)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Set the error code with an optional user readable error message. This should be set when the state is `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_ERROR()`.

| Parameters |
|---|---|
| `int errorCode` | The errorCode to set. |
| `https://developer.android.com/reference/java/lang/CharSequence.html errorMessage` | The user readable error message. Can be null. |

| Returns |
|---|---|
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder` | this |

### setExtras

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public PlaybackStateCompat.Builder [setExtras](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#setExtras(android.os.Bundle))(Bundle extras)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Set any custom extras to be included with the playback state.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/os/Bundle.html extras` | The extras to include. |

| Returns |
|---|---|
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder` | this |

### setState

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public PlaybackStateCompat.Builder [setState](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#setState(int,long,float))(int state, long position, float playbackSpeed)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Set the current state of playback.

The position must be in ms and indicates the current playback position within the track. If the position is unknown use `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#PLAYBACK_POSITION_UNKNOWN()`.

The rate is a multiple of normal playback and should be 0 when paused and negative when rewinding. Normal playback rate is 1.0.

The state must be one of the following:

- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_NONE()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_STOPPED()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_PLAYING()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_PAUSED()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_FAST_FORWARDING()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_REWINDING()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_BUFFERING()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_ERROR()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_CONNECTING()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_SKIPPING_TO_PREVIOUS()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_SKIPPING_TO_NEXT()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_SKIPPING_TO_QUEUE_ITEM()`

| Parameters |
|---|---|
| `int state` | The current state of playback. |
| `long position` | The position in the current track in ms. |
| `float playbackSpeed` | The current rate of playback as a multiple of normal playback. |

### setState

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public PlaybackStateCompat.Builder [setState](https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder#setState(int,long,float,long))(int state, long position, float playbackSpeed, long updateTime)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Set the current state of playback.

The position must be in ms and indicates the current playback position within the track. If the position is unknown use `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#PLAYBACK_POSITION_UNKNOWN()`.

The rate is a multiple of normal playback and should be 0 when paused and negative when rewinding. Normal playback rate is 1.0.

The state must be one of the following:

- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_NONE()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_STOPPED()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_PLAYING()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_PAUSED()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_FAST_FORWARDING()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_REWINDING()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_BUFFERING()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_ERROR()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_CONNECTING()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_SKIPPING_TO_PREVIOUS()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_SKIPPING_TO_NEXT()`
- `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat#STATE_SKIPPING_TO_QUEUE_ITEM()`

| Parameters |
|---|---|
| `int state` | The current state of playback. |
| `long position` | The position in the current item in ms. |
| `float playbackSpeed` | The current speed of playback as a multiple of normal playback. |
| `long updateTime` | The time in the `https://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtime()` timebase that the position was updated at. |

| Returns |
|---|---|
| `https://developer.android.com/reference/android/support/v4/media/session/PlaybackStateCompat.Builder` | this |