# MediaSessionCompat.Callback

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/MediaSessionCompat.java+class:android.support.v4.media.session.MediaSessionCompat.Callback) 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)

*** ** * ** ***


```
abstract class MediaSessionCompat.Callback
```

<br />

*** ** * ** ***

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

Receives transport controls, media buttons, and commands from controllers and the system. The callback may be set using `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat#setCallback(android.support.v4.media.session.MediaSessionCompat.Callback)`.

Don't reuse the callback among the sessions. Callbacks keep internal reference to the session when it's set, so it may misbehave.

## Summary

| ### Public constructors |
|---|
| `[Callback](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#Callback())()` |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onAddQueueItem](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onAddQueueItem(android.support.v4.media.MediaDescriptionCompat))(description: https://developer.android.com/reference/kotlin/android/support/v4/media/MediaDescriptionCompat!)` Called when a `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat` wants to add a `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.QueueItem` with the given `https://developer.android.com/reference/kotlin/android/support/v4/media/MediaDescriptionCompat` at the end of the play queue. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onAddQueueItem](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onAddQueueItem(android.support.v4.media.MediaDescriptionCompat,int))(description: https://developer.android.com/reference/kotlin/android/support/v4/media/MediaDescriptionCompat!, index: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Called when a `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat` wants to add a `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.QueueItem` with the given `https://developer.android.com/reference/kotlin/android/support/v4/media/MediaDescriptionCompat` at the specified position in the play queue. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onCommand](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onCommand(java.lang.String,android.os.Bundle,android.os.ResultReceiver))(command: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, extras: https://developer.android.com/reference/android/os/Bundle.html!, cb: https://developer.android.com/reference/android/os/ResultReceiver.html!)` Called when a controller has sent a custom command to this session. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onCustomAction](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onCustomAction(java.lang.String,android.os.Bundle))(action: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, extras: https://developer.android.com/reference/android/os/Bundle.html!)` Called when a `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat` wants a `https://developer.android.com/reference/kotlin/android/support/v4/media/session/PlaybackStateCompat.CustomAction` to be performed. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onFastForward](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onFastForward())()` Override to handle requests to fast forward. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `[onMediaButtonEvent](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onMediaButtonEvent(android.content.Intent))(mediaButtonEvent: https://developer.android.com/reference/android/content/Intent.html!)` Override to handle media button events. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onPause](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPause())()` Override to handle requests to pause playback. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onPlay](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPlay())()` Override to handle requests to begin playback. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onPlayFromMediaId](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPlayFromMediaId(java.lang.String,android.os.Bundle))(mediaId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, extras: https://developer.android.com/reference/android/os/Bundle.html!)` Override to handle requests to play a specific mediaId that was provided by your app. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onPlayFromSearch](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPlayFromSearch(java.lang.String,android.os.Bundle))(query: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, extras: https://developer.android.com/reference/android/os/Bundle.html!)` Override to handle requests to begin playback from a search query. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onPlayFromUri](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPlayFromUri(android.net.Uri,android.os.Bundle))(uri: https://developer.android.com/reference/android/net/Uri.html!, extras: https://developer.android.com/reference/android/os/Bundle.html!)` Override to handle requests to play a specific media item represented by a URI. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onPrepare](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPrepare())()` Override to handle requests to prepare playback. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onPrepareFromMediaId](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPrepareFromMediaId(java.lang.String,android.os.Bundle))(mediaId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, extras: https://developer.android.com/reference/android/os/Bundle.html!)` Override to handle requests to prepare for playing a specific mediaId that was provided by your app. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onPrepareFromSearch](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPrepareFromSearch(java.lang.String,android.os.Bundle))(query: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, extras: https://developer.android.com/reference/android/os/Bundle.html!)` Override to handle requests to prepare playback from a search query. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onPrepareFromUri](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPrepareFromUri(android.net.Uri,android.os.Bundle))(uri: https://developer.android.com/reference/android/net/Uri.html!, extras: https://developer.android.com/reference/android/os/Bundle.html!)` Override to handle requests to prepare a specific media item represented by a URI. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onRemoveQueueItem](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onRemoveQueueItem(android.support.v4.media.MediaDescriptionCompat))(description: https://developer.android.com/reference/kotlin/android/support/v4/media/MediaDescriptionCompat!)` Called when a `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat` wants to remove the first occurrence of the specified `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.QueueItem` with the given `https://developer.android.com/reference/kotlin/android/support/v4/media/MediaDescriptionCompat` in the play queue. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onRemoveQueueItemAt](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onRemoveQueueItemAt(int))(index: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` **This function is deprecated.** `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onRemoveQueueItem(android.support.v4.media.MediaDescriptionCompat)` will be called instead. <br /> |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onRewind](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onRewind())()` Override to handle requests to rewind. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onSeekTo](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onSeekTo(long))(pos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Override to handle requests to seek to a specific position in ms. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onSetCaptioningEnabled](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onSetCaptioningEnabled(boolean))(enabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Override to handle requests to enable/disable captioning. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onSetPlaybackSpeed](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onSetPlaybackSpeed(float))(speed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)` Override to handle the playback speed change. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onSetRating](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onSetRating(android.support.v4.media.RatingCompat))(rating: https://developer.android.com/reference/kotlin/android/support/v4/media/RatingCompat!)` Override to handle the item being rated. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onSetRating](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onSetRating(android.support.v4.media.RatingCompat,android.os.Bundle))(rating: https://developer.android.com/reference/kotlin/android/support/v4/media/RatingCompat!, extras: https://developer.android.com/reference/android/os/Bundle.html!)` Override to handle the item being rated. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onSetRepeatMode](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onSetRepeatMode(int))(repeatMode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Override to handle the setting of the repeat mode. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onSetShuffleMode](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onSetShuffleMode(int))(shuffleMode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Override to handle the setting of the shuffle mode. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onSkipToNext](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onSkipToNext())()` Override to handle requests to skip to the next media item. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onSkipToPrevious](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onSkipToPrevious())()` Override to handle requests to skip to the previous media item. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onSkipToQueueItem](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onSkipToQueueItem(long))(id: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Override to handle requests to play an item with a given id from the play queue. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `[onStop](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onStop())()` Override to handle requests to stop playback. |

## Public constructors

### Callback

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)

```
[Callback](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#Callback())()
```

## Public functions

### onAddQueueItem

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)

```
fun [onAddQueueItem](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onAddQueueItem(android.support.v4.media.MediaDescriptionCompat))(description: MediaDescriptionCompat!): Unit
```

Called when a `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat` wants to add a `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.QueueItem` with the given `https://developer.android.com/reference/kotlin/android/support/v4/media/MediaDescriptionCompat` at the end of the play queue.

| Parameters |
|---|---|
| `description: https://developer.android.com/reference/kotlin/android/support/v4/media/MediaDescriptionCompat!` | The `https://developer.android.com/reference/kotlin/android/support/v4/media/MediaDescriptionCompat` for creating the `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.QueueItem` to be inserted. |

### onAddQueueItem

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)

```
fun [onAddQueueItem](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onAddQueueItem(android.support.v4.media.MediaDescriptionCompat,int))(description: MediaDescriptionCompat!, index: Int): Unit
```

Called when a `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat` wants to add a `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.QueueItem` with the given `https://developer.android.com/reference/kotlin/android/support/v4/media/MediaDescriptionCompat` at the specified position in the play queue.

| Parameters |
|---|---|
| `description: https://developer.android.com/reference/kotlin/android/support/v4/media/MediaDescriptionCompat!` | The `https://developer.android.com/reference/kotlin/android/support/v4/media/MediaDescriptionCompat` for creating the `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.QueueItem` to be inserted. |
| `index: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The index at which the created `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.QueueItem` is to be inserted. |

### onCommand

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)

```
fun [onCommand](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onCommand(java.lang.String,android.os.Bundle,android.os.ResultReceiver))(command: String!, extras: Bundle!, cb: ResultReceiver!): Unit
```

Called when a controller has sent a custom command to this session. The owner of the session may handle custom commands but is not required to.

| Parameters |
|---|---|
| `command: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | The command name. |
| `extras: https://developer.android.com/reference/android/os/Bundle.html!` | Optional parameters for the command, may be null. |
| `cb: https://developer.android.com/reference/android/os/ResultReceiver.html!` | A result receiver to which a result may be sent by the command, may be null. |

### onCustomAction

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)

```
fun [onCustomAction](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onCustomAction(java.lang.String,android.os.Bundle))(action: String!, extras: Bundle!): Unit
```

Called when a `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat` wants a `https://developer.android.com/reference/kotlin/android/support/v4/media/session/PlaybackStateCompat.CustomAction` to be performed.

| Parameters |
|---|---|
| `action: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | The action that was originally sent in the `https://developer.android.com/reference/kotlin/android/support/v4/media/session/PlaybackStateCompat.CustomAction`. |
| `extras: https://developer.android.com/reference/android/os/Bundle.html!` | Optional extras specified by the `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat`. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat#ACTION_FLAG_AS_INAPPROPRIATE()` |   |
| `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat#ACTION_SKIP_AD()` |   |
| `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat#ACTION_FOLLOW()` |   |
| `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat#ACTION_UNFOLLOW()` |   |

### onFastForward

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)

```
fun [onFastForward](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onFastForward())(): Unit
```

Override to handle requests to fast forward.

### onMediaButtonEvent

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)

```
fun [onMediaButtonEvent](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onMediaButtonEvent(android.content.Intent))(mediaButtonEvent: Intent!): Boolean
```

Override to handle media button events.

The double tap of `https://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_MEDIA_PLAY_PAUSE` or `https://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_HEADSETHOOK` will call the `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onSkipToNext()` by default. If the current SDK level is 27 or higher, the default double tap handling is done by framework so this method would do nothing for it.

| Parameters |
|---|---|
| `mediaButtonEvent: https://developer.android.com/reference/android/content/Intent.html!` | The media button event intent. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | True if the event was handled, false otherwise. |

### onPause

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)

```
fun [onPause](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPause())(): Unit
```

Override to handle requests to pause playback.

### onPlay

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)

```
fun [onPlay](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPlay())(): Unit
```

Override to handle requests to begin playback.

### onPlayFromMediaId

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)

```
fun [onPlayFromMediaId](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPlayFromMediaId(java.lang.String,android.os.Bundle))(mediaId: String!, extras: Bundle!): Unit
```

Override to handle requests to play a specific mediaId that was provided by your app.

### onPlayFromSearch

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)

```
fun [onPlayFromSearch](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPlayFromSearch(java.lang.String,android.os.Bundle))(query: String!, extras: Bundle!): Unit
```

Override to handle requests to begin playback from a search query. An empty query indicates that the app may play any music. The implementation should attempt to make a smart choice about what to play.

### onPlayFromUri

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)

```
fun [onPlayFromUri](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPlayFromUri(android.net.Uri,android.os.Bundle))(uri: Uri!, extras: Bundle!): Unit
```

Override to handle requests to play a specific media item represented by a URI.

### onPrepare

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)

```
fun [onPrepare](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPrepare())(): Unit
```

Override to handle requests to prepare playback. Override `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPlay()` to handle requests for starting playback.

### onPrepareFromMediaId

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)

```
fun [onPrepareFromMediaId](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPrepareFromMediaId(java.lang.String,android.os.Bundle))(mediaId: String!, extras: Bundle!): Unit
```

Override to handle requests to prepare for playing a specific mediaId that was provided by your app. Override `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPlayFromMediaId(java.lang.String,android.os.Bundle)` to handle requests for starting playback.

### onPrepareFromSearch

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)

```
fun [onPrepareFromSearch](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPrepareFromSearch(java.lang.String,android.os.Bundle))(query: String!, extras: Bundle!): Unit
```

Override to handle requests to prepare playback from a search query. An empty query indicates that the app may prepare any music. The implementation should attempt to make a smart choice about what to play. Override `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPlayFromSearch(java.lang.String,android.os.Bundle)` to handle requests for starting playback.

### onPrepareFromUri

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)

```
fun [onPrepareFromUri](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPrepareFromUri(android.net.Uri,android.os.Bundle))(uri: Uri!, extras: Bundle!): Unit
```

Override to handle requests to prepare a specific media item represented by a URI. Override `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onPlayFromUri(android.net.Uri,android.os.Bundle)` to handle requests for starting playback.

### onRemoveQueueItem

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)

```
fun [onRemoveQueueItem](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onRemoveQueueItem(android.support.v4.media.MediaDescriptionCompat))(description: MediaDescriptionCompat!): Unit
```

Called when a `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat` wants to remove the first occurrence of the specified `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.QueueItem` with the given `https://developer.android.com/reference/kotlin/android/support/v4/media/MediaDescriptionCompat` in the play queue.

| Parameters |
|---|---|
| `description: https://developer.android.com/reference/kotlin/android/support/v4/media/MediaDescriptionCompat!` | The `https://developer.android.com/reference/kotlin/android/support/v4/media/MediaDescriptionCompat` for denoting the `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.QueueItem` to be removed. |

### onRemoveQueueItemAt

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)

```
fun [onRemoveQueueItemAt](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onRemoveQueueItemAt(int))(index: Int): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
>
> `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onRemoveQueueItem(android.support.v4.media.MediaDescriptionCompat)` will be called instead.

Called when a `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat` wants to remove a `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.QueueItem` at the specified position in the play queue.

| Parameters |
|---|---|
| `index: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The index of the element to be removed. |

### onRewind

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)

```
fun [onRewind](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onRewind())(): Unit
```

Override to handle requests to rewind.

### onSeekTo

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)

```
fun [onSeekTo](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onSeekTo(long))(pos: Long): Unit
```

Override to handle requests to seek to a specific position in ms.

| Parameters |
|---|---|
| `pos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | New position to move to, in milliseconds. |

### onSetCaptioningEnabled

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)

```
fun [onSetCaptioningEnabled](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onSetCaptioningEnabled(boolean))(enabled: Boolean): Unit
```

Override to handle requests to enable/disable captioning.

| Parameters |
|---|---|
| `enabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `true` to enable captioning, `false` to disable. |

### onSetPlaybackSpeed

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

```
fun [onSetPlaybackSpeed](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onSetPlaybackSpeed(float))(speed: Float): Unit
```

Override to handle the playback speed change. To update the new playback speed, create a new `https://developer.android.com/reference/kotlin/android/support/v4/media/session/PlaybackStateCompat` by using `https://developer.android.com/reference/kotlin/android/support/v4/media/session/PlaybackStateCompat.Builder#setState(int,long,float)`, and set it with `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat#setPlaybackState(android.support.v4.media.session.PlaybackStateCompat)`.

A value of `1.0f` is the default playback value, and a negative value indicates reverse playback. The `speed` will not be equal to zero.

| Parameters |
|---|---|
| `speed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | the playback speed |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat#setPlaybackState(android.support.v4.media.session.PlaybackStateCompat)` |   |
| `https://developer.android.com/reference/kotlin/android/support/v4/media/session/PlaybackStateCompat.Builder#setState(int,long,float)` |   |

### onSetRating

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)

```
fun [onSetRating](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onSetRating(android.support.v4.media.RatingCompat))(rating: RatingCompat!): Unit
```

Override to handle the item being rated.

| Parameters |
|---|---|
| `rating: https://developer.android.com/reference/kotlin/android/support/v4/media/RatingCompat!` | The rating being set. |

### onSetRating

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)

```
fun [onSetRating](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onSetRating(android.support.v4.media.RatingCompat,android.os.Bundle))(rating: RatingCompat!, extras: Bundle!): Unit
```

Override to handle the item being rated.

| Parameters |
|---|---|
| `rating: https://developer.android.com/reference/kotlin/android/support/v4/media/RatingCompat!` | The rating being set. |
| `extras: https://developer.android.com/reference/android/os/Bundle.html!` | The extras can include information about the media item being rated. |

### onSetRepeatMode

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)

```
fun [onSetRepeatMode](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onSetRepeatMode(int))(repeatMode: Int): Unit
```

Override to handle the setting of the repeat mode.

You should call `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat#setRepeatMode(int)` before end of this method in order to notify the change to the `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat`, or `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat#getRepeatMode()` could return an invalid value.

| Parameters |
|---|---|
| `repeatMode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The repeat mode which is one of followings: `https://developer.android.com/reference/kotlin/android/support/v4/media/session/PlaybackStateCompat#REPEAT_MODE_NONE()`, `https://developer.android.com/reference/kotlin/android/support/v4/media/session/PlaybackStateCompat#REPEAT_MODE_ONE()`, `https://developer.android.com/reference/kotlin/android/support/v4/media/session/PlaybackStateCompat#REPEAT_MODE_ALL()`, `https://developer.android.com/reference/kotlin/android/support/v4/media/session/PlaybackStateCompat#REPEAT_MODE_GROUP()` |

### onSetShuffleMode

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)

```
fun [onSetShuffleMode](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onSetShuffleMode(int))(shuffleMode: Int): Unit
```

Override to handle the setting of the shuffle mode.

You should call `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat#setShuffleMode(int)` before the end of this method in order to notify the change to the `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat`, or `https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat#getShuffleMode()` could return an invalid value.

| Parameters |
|---|---|
| `shuffleMode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The shuffle mode which is one of followings: `https://developer.android.com/reference/kotlin/android/support/v4/media/session/PlaybackStateCompat#SHUFFLE_MODE_NONE()`, `https://developer.android.com/reference/kotlin/android/support/v4/media/session/PlaybackStateCompat#SHUFFLE_MODE_ALL()`, `https://developer.android.com/reference/kotlin/android/support/v4/media/session/PlaybackStateCompat#SHUFFLE_MODE_GROUP()` |

### onSkipToNext

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)

```
fun [onSkipToNext](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onSkipToNext())(): Unit
```

Override to handle requests to skip to the next media item.

### onSkipToPrevious

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)

```
fun [onSkipToPrevious](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onSkipToPrevious())(): Unit
```

Override to handle requests to skip to the previous media item.

### onSkipToQueueItem

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)

```
fun [onSkipToQueueItem](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onSkipToQueueItem(long))(id: Long): Unit
```

Override to handle requests to play an item with a given id from the play queue.

### onStop

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)

```
fun [onStop](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaSessionCompat.Callback#onStop())(): Unit
```

Override to handle requests to stop playback.