# MediaConstants

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

*** ** * ** ***


```
class MediaConstants
```

<br />

*** ** * ** ***

Constants that can be shared between media session and controller.

## Summary

| ### Constants |
|---|---|
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#CUSTOM_COMMAND_DOWNLOAD() = "android.support.v4.media.action.DOWNLOAD"` Predefined custom action name to ask the connected service to download a specific `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` for offline playback. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#ERROR_CODE_AUTHENTICATION_EXPIRED_COMPAT() = 3` `https://developer.android.com/reference/android/os/Bundle.html` key used for the error code for expired authentication. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_APPLICATION_PREFERENCES_USING_CAR_APP_LIBRARY_INTENT() = "androidx.media.BrowserRoot.Extras.APPLICATION_PREFERENCES_USING_CAR_APP_LIBRARY_INTENT"` `https://developer.android.com/reference/android/os/Bundle.html` key used to indicate that the media app that provides the service supports showing a settings page. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_CATEGORIES() = "androidx.media3.session.EXTRAS_KEY_CATEGORIES"` `https://developer.android.com/reference/android/os/Bundle.html` key used to indicate the `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#categories()` in the legacy ` android.support.v4.media.MediaDescriptionCompat` as a comma-separated String extra and as a comma-separated String value in `android.support.v4.media.MediaMetadataCompat`. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_COMMAND_BUTTON_ICON_COMPAT() = "androidx.media3.session.EXTRAS_KEY_COMMAND_BUTTON_ICON_COMPAT"` `https://developer.android.com/reference/android/os/Bundle.html` key used to indicate the `https://developer.android.com/reference/kotlin/androidx/media3/session/CommandButton.Icon` in the extras of the platform `https://developer.android.com/reference/android/media/session/PlaybackState.CustomAction.html`. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_COMMAND_BUTTON_ICON_URI_COMPAT() = "androidx.media3.session.EXTRAS_KEY_COMMAND_BUTTON_ICON_URI_COMPAT"` `https://developer.android.com/reference/android/os/Bundle.html` key used to indicate the custom icon Uri of a `https://developer.android.com/reference/kotlin/androidx/media3/session/CommandButton` in the extras of the platform `https://developer.android.com/reference/android/media/session/PlaybackState.CustomAction.html`. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_COMPLETION_PERCENTAGE() = "androidx.media.MediaItem.Extras.COMPLETION_PERCENTAGE"` `https://developer.android.com/reference/android/os/Bundle.html` key used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate an amount of completion progress for the corresponding `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem`. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_COMPLETION_STATUS() = "android.media.extra.PLAYBACK_STATUS"` `https://developer.android.com/reference/android/os/Bundle.html` key used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate the playback completion status of the corresponding `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem`. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_CONTENT_STYLE_BROWSABLE() = "android.media.browse.CONTENT_STYLE_BROWSABLE_HINT"` `https://developer.android.com/reference/android/os/Bundle.html` key used to indicate a preference about how browsable instances of `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` are presented. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE() = "android.media.browse.CONTENT_STYLE_GROUP_TITLE_HINT"` `https://developer.android.com/reference/android/os/Bundle.html` key used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate that certain instances of `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` are related as a group, with a title that is specified through the bundle value. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_CONTENT_STYLE_PLAYABLE() = "android.media.browse.CONTENT_STYLE_PLAYABLE_HINT"` `https://developer.android.com/reference/android/os/Bundle.html` key used to indicate a preference about how playable instances of `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` are presented. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_CONTENT_STYLE_SINGLE_ITEM() = "android.media.browse.CONTENT_STYLE_SINGLE_ITEM_HINT"` `https://developer.android.com/reference/android/os/Bundle.html` key used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate a preference about how the corresponding `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` is presented. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_DOWNLOAD_PROGRESS() = "android.media.browse.extra.DOWNLOAD_PROGRESS"` Used as a float extra field to denote the current progress during download. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_DOWNLOAD_STATUS() = "android.media.extra.DOWNLOAD_STATUS"` `https://developer.android.com/reference/android/os/Bundle.html` key used as a long extra field to indicate the download status of the media item. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_ERROR_RESOLUTION_ACTION_INTENT_COMPAT() = "android.media.extras.ERROR_RESOLUTION_ACTION_INTENT"` `https://developer.android.com/reference/android/os/Bundle.html` key used for an error resolution intent. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_ERROR_RESOLUTION_ACTION_LABEL_COMPAT() = "android.media.extras.ERROR_RESOLUTION_ACTION_LABEL"` `https://developer.android.com/reference/android/os/Bundle.html` key used for a localized error resolution string. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_ERROR_RESOLUTION_USING_CAR_APP_LIBRARY_INTENT_COMPAT() = "androidx.media.PlaybackStateCompat.Extras.ERROR_RESOLUTION_USING_CAR_APP_LIBRARY_INTENT"` `https://developer.android.com/reference/android/os/Bundle.html` key used to store a `https://developer.android.com/reference/android/app/PendingIntent.html`. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_IS_ADVERTISEMENT() = "android.media.metadata.ADVERTISEMENT"` `https://developer.android.com/reference/android/os/Bundle.html` key used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate that the corresponding `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` is an advertisement. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_IS_EXPLICIT() = "android.media.IS_EXPLICIT"` `https://developer.android.com/reference/android/os/Bundle.html` key used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate that the corresponding `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` has explicit content (that is, user discretion is advised when viewing or listening to this content). |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_MEDIA_ART_SIZE_PIXELS() = "android.media.extras.MEDIA_ART_SIZE_HINT_PIXELS"` `https://developer.android.com/reference/android/os/Bundle.html` key used in `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.LibraryParams#extras()` passed by the `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaBrowser` as root hints to `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.MediaLibrarySession.Callback#onGetLibraryRoot(androidx.media3.session.MediaLibraryService.MediaLibrarySession,androidx.media3.session.MediaSession.ControllerInfo,androidx.media3.session.MediaLibraryService.LibraryParams)` to indicate the recommended size, in pixels, for media art bitmaps. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_MEDIA_ID_COMPAT() = "androidx.media.PlaybackStateCompat.Extras.KEY_MEDIA_ID"` `https://developer.android.com/reference/android/os/Bundle.html` key used for the media id of the media being played. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_MEDIA_TYPE_COMPAT() = "androidx.media3.session.EXTRAS_KEY_MEDIA_TYPE_COMPAT"` `https://developer.android.com/reference/android/os/Bundle.html` key used to indicate the `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata.MediaType` in the legacy ` android.support.v4.media.MediaDescriptionCompat` as a long extra and as a long value in ` android.support.v4.media.MediaMetadataCompat`. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_PLAYBACK_SPEED_COMPAT() = "EXO_SPEED"` `https://developer.android.com/reference/android/os/Bundle.html` key used for the value of `Player.getPlaybackParameters().speed`. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_PLAYLIST_ARTWORK_URI() = "androidx.media3.session.EXTRAS_KEY_PLAYLIST_ARTWORK_URI"` `https://developer.android.com/reference/android/os/Bundle.html` key used to indicate the playlist artwork URI (corresponding to `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#getPlaylistMetadata()``.artworkUri`) in the legacy ` android.support.v4.media.MediaDescriptionCompat` as a String extra and as a String value in `android.support.v4.media.MediaMetadataCompat`. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_PLAYLIST_ID() = "androidx.media3.session.EXTRAS_KEY_PLAYLIST_ID"` `https://developer.android.com/reference/android/os/Bundle.html` key used to indicate the `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#playlistId()` in the legacy ` android.support.v4.media.MediaDescriptionCompat` as a String extra and as a String value in `android.support.v4.media.MediaMetadataCompat`. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_PLAYLIST_TITLE() = "androidx.media3.session.EXTRAS_KEY_PLAYLIST_TITLE"` `https://developer.android.com/reference/android/os/Bundle.html` key used to indicate the playlist title (corresponding to `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#getPlaylistMetadata()``.title`) in the legacy ` android.support.v4.media.MediaDescriptionCompat` as a String extra and as a String value in `android.support.v4.media.MediaMetadataCompat`. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_ROOT_CHILDREN_LIMIT() = "androidx.media.MediaBrowserCompat.Extras.KEY_ROOT_CHILDREN_LIMIT"` `https://developer.android.com/reference/android/os/Bundle.html` key used in `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.LibraryParams#extras()` passed to `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.MediaLibrarySession.Callback#onGetLibraryRoot(androidx.media3.session.MediaLibraryService.MediaLibrarySession,androidx.media3.session.MediaSession.ControllerInfo,androidx.media3.session.MediaLibraryService.LibraryParams)` to indicate the maximum number of children of the root node that can be supported by the `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaBrowser`. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_SLOT_RESERVATION_SEEK_TO_NEXT() = "android.media.playback.ALWAYS_RESERVE_SPACE_FOR.ACTION_SKIP_TO_NEXT"` `https://developer.android.com/reference/android/os/Bundle.html` key to indicate a preference that a region of space for the skip to next control should always be blocked out in the UI, even when the seek to next standard action is not supported. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_SLOT_RESERVATION_SEEK_TO_PREV() = "android.media.playback.ALWAYS_RESERVE_SPACE_FOR.ACTION_SKIP_TO_PREVIOUS"` `https://developer.android.com/reference/android/os/Bundle.html` key to indicate a preference that a region of space for the skip to previous control should always be blocked out in the UI, even when the seek to previous standard action is not supported. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_SUGGESTED_TYPE() = "androidx.media3.session.EXTRAS_KEY_SUGGESTED_TYPE"` `https://developer.android.com/reference/android/os/Bundle.html` key used to indicate the suggested content type in `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.LibraryParams#extras()` of a `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.MediaLibrarySession.Callback#onGetChildren(androidx.media3.session.MediaLibraryService.MediaLibrarySession,androidx.media3.session.MediaSession.ControllerInfo,java.lang.String,int,int,androidx.media3.session.MediaLibraryService.LibraryParams)` request. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_TTL_SECONDS() = "androidx.media3.session.EXTRAS_KEY_TTL_SECONDS"` `https://developer.android.com/reference/android/os/Bundle.html` key used to indicate the cache time-to-live (TTL) in seconds for suggestions in `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.LibraryParams#extras()` of a `https://developer.android.com/reference/kotlin/androidx/media3/session/LibraryResult` returned by `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.MediaLibrarySession.Callback#onGetChildren(androidx.media3.session.MediaLibraryService.MediaLibrarySession,androidx.media3.session.MediaSession.ControllerInfo,java.lang.String,int,int,androidx.media3.session.MediaLibraryService.LibraryParams)`. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_ATTRIBUTE_PRESENT() = 1` `https://developer.android.com/reference/android/os/Bundle.html` value used to indicate the presence of an attribute described by its corresponding key. |
| `const 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/session/MediaConstants#EXTRAS_VALUE_COMPLETION_STATUS_FULLY_PLAYED() = 2` `https://developer.android.com/reference/android/os/Bundle.html` value used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate that the corresponding `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` has been fully played by the user. |
| `const 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/session/MediaConstants#EXTRAS_VALUE_COMPLETION_STATUS_NOT_PLAYED() = 0` `https://developer.android.com/reference/android/os/Bundle.html` value used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate that the corresponding `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` has not been played by the user. |
| `const 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/session/MediaConstants#EXTRAS_VALUE_COMPLETION_STATUS_PARTIALLY_PLAYED() = 1` `https://developer.android.com/reference/android/os/Bundle.html` value used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate that the corresponding `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` has been partially played by the user. |
| `const 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/session/MediaConstants#EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_GRID_ITEM() = 4` `https://developer.android.com/reference/android/os/Bundle.html` value used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate a preference that browsable instances of `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` should be presented as "category" grid items. |
| `const 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/session/MediaConstants#EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_LIST_ITEM() = 3` `https://developer.android.com/reference/android/os/Bundle.html` value used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate a preference that browsable instances of `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` should be presented as "category" list items. |
| `const 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/session/MediaConstants#EXTRAS_VALUE_CONTENT_STYLE_GRID_ITEM() = 2` `https://developer.android.com/reference/android/os/Bundle.html` value used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate a preference that certain instances of `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` should be presented as grid items. |
| `const 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/session/MediaConstants#EXTRAS_VALUE_CONTENT_STYLE_LIST_ITEM() = 1` `https://developer.android.com/reference/android/os/Bundle.html` value used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate a preference that certain instances of `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` should be presented as list items. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_STATUS_DOWNLOADED() = 2` The extras value to indicate that the media item is downloaded for later offline playback. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_STATUS_DOWNLOADING() = 1` The extras value to indicate that the media item is being downloaded. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_STATUS_NOT_DOWNLOADED() = 0` The extras value to indicate that the media item is not downloaded. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRA_KEY_MEDIA_ID() = "androidx.media.utils.extras.KEY_CUSTOM_BROWSER_ACTION_MEDIA_ITEM_ID"` `https://developer.android.com/reference/android/os/Bundle.html` key used for a media item ID. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRA_KEY_ROOT_CHILDREN_BROWSABLE_ONLY() = "androidx.media3.session.LibraryParams.Extras.KEY_ROOT_CHILDREN_BROWSABLE_ONLY"` `https://developer.android.com/reference/android/os/Bundle.html` key used in `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.LibraryParams#extras()` passed to `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.MediaLibrarySession.Callback#onGetLibraryRoot(androidx.media3.session.MediaLibraryService.MediaLibrarySession,androidx.media3.session.MediaSession.ControllerInfo,androidx.media3.session.MediaLibraryService.LibraryParams)` to indicate whether only browsable media items are supported as children of the root node by the `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaBrowser`. |

## Constants

### CUSTOM_COMMAND_DOWNLOAD

```
@UnstableApi
const val CUSTOM_COMMAND_DOWNLOAD = "android.support.v4.media.action.DOWNLOAD": String!
```

Predefined custom action name to ask the connected service to download a specific `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` for offline playback. The id of the media item must be passed in an extra bundle. The download progress might be delivered to the controller or the browser via `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaController.ProgressListener`.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_DOWNLOAD_PROGRESS()` |   |

### ERROR_CODE_AUTHENTICATION_EXPIRED_COMPAT

```
const val ERROR_CODE_AUTHENTICATION_EXPIRED_COMPAT = 3: Int
```

`https://developer.android.com/reference/android/os/Bundle.html` key used for the error code for expired authentication.

Use this error code to indicate an expired authentication when `https://developer.android.com/reference/kotlin/androidx/media3/session/LibraryResult#ofError(int,androidx.media3.session.MediaLibraryService.LibraryParams)` for an unsuccessful service call.

| See also |
|---|---|
| `androidx.media3.session.legacy.PlaybackStateCompat.ERROR_CODE_AUTHENTICATION_EXPIRED` |   |

### EXTRAS_KEY_APPLICATION_PREFERENCES_USING_CAR_APP_LIBRARY_INTENT

```
@UnstableApi
const val EXTRAS_KEY_APPLICATION_PREFERENCES_USING_CAR_APP_LIBRARY_INTENT = "androidx.media.BrowserRoot.Extras.APPLICATION_PREFERENCES_USING_CAR_APP_LIBRARY_INTENT": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used to indicate that the media app that provides the service supports showing a settings page.

Use this key to populate the `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.LibraryParams#extras()` of the `https://developer.android.com/reference/kotlin/androidx/media3/session/LibraryResult` returned by `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.MediaLibrarySession.Callback#onGetLibraryRoot(androidx.media3.session.MediaLibraryService.MediaLibrarySession,androidx.media3.session.MediaSession.ControllerInfo,androidx.media3.session.MediaLibraryService.LibraryParams)`. Use this key with `https://developer.android.com/reference/android/os/Bundle.html#putParcelable(java.lang.String, android.os.Parcelable)` to put a `https://developer.android.com/reference/android/app/PendingIntent.html` that is created using `CarPendingIntent#getCarApp()`.

The `https://developer.android.com/reference/android/content/Intent.html` carried by the pending intent needs to have the component name set to a [Car App Library service](http://developer.android.com/training/cars/apps#create-carappservice) that needs to exist in the same application package as the media browser service.

TYPE: `https://developer.android.com/reference/android/app/PendingIntent.html`.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.MediaLibrarySession.Callback#onGetLibraryRoot(androidx.media3.session.MediaLibraryService.MediaLibrarySession,androidx.media3.session.MediaSession.ControllerInfo,androidx.media3.session.MediaLibraryService.LibraryParams)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.LibraryParams#extras()` |   |

### EXTRAS_KEY_CATEGORIES

```
@UnstableApi
const val EXTRAS_KEY_CATEGORIES = "androidx.media3.session.EXTRAS_KEY_CATEGORIES": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used to indicate the `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#categories()` in the legacy `
android.support.v4.media.MediaDescriptionCompat` as a comma-separated String extra and as a comma-separated String value in `android.support.v4.media.MediaMetadataCompat`.

### EXTRAS_KEY_COMMAND_BUTTON_ICON_COMPAT

```
@UnstableApi
const val EXTRAS_KEY_COMMAND_BUTTON_ICON_COMPAT = "androidx.media3.session.EXTRAS_KEY_COMMAND_BUTTON_ICON_COMPAT": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used to indicate the `https://developer.android.com/reference/kotlin/androidx/media3/session/CommandButton.Icon` in the extras of the platform `https://developer.android.com/reference/android/media/session/PlaybackState.CustomAction.html`. The corresponding value should be one of the `CommandButton.ICON_` integer constants.

### EXTRAS_KEY_COMMAND_BUTTON_ICON_URI_COMPAT

```
@UnstableApi
const val EXTRAS_KEY_COMMAND_BUTTON_ICON_URI_COMPAT = "androidx.media3.session.EXTRAS_KEY_COMMAND_BUTTON_ICON_URI_COMPAT": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used to indicate the custom icon Uri of a `https://developer.android.com/reference/kotlin/androidx/media3/session/CommandButton` in the extras of the platform `https://developer.android.com/reference/android/media/session/PlaybackState.CustomAction.html`.

### EXTRAS_KEY_COMPLETION_PERCENTAGE

```
@UnstableApi
const val EXTRAS_KEY_COMPLETION_PERCENTAGE = "androidx.media.MediaItem.Extras.COMPLETION_PERCENTAGE": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate an amount of completion progress for the corresponding `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem`. This extra augments `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_COMPLETION_STATUS_PARTIALLY_PLAYED()` by indicating how much has been played by the user.

TYPE: double, a value between 0.0 and 1.0, inclusive. 0.0 indicates no completion progress (item is not started) and 1.0 indicates full completion progress (item is fully played). Values in between indicate partial progress (for example, 0.75 indicates the item is 75% complete).

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata.Builder#setExtras(android.os.Bundle)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` |   |

### EXTRAS_KEY_COMPLETION_STATUS

```
@UnstableApi
const val EXTRAS_KEY_COMPLETION_STATUS = "android.media.extra.PLAYBACK_STATUS": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate the playback completion status of the corresponding `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem`.

TYPE: int. Possible values are separate constants.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata.Builder#setExtras(android.os.Bundle)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_COMPLETION_STATUS_NOT_PLAYED()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_COMPLETION_STATUS_PARTIALLY_PLAYED()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_COMPLETION_STATUS_FULLY_PLAYED()` |   |

### EXTRAS_KEY_CONTENT_STYLE_BROWSABLE

```
@UnstableApi
const val EXTRAS_KEY_CONTENT_STYLE_BROWSABLE = "android.media.browse.CONTENT_STYLE_BROWSABLE_HINT": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used to indicate a preference about how browsable instances of `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` are presented.

If exposed through `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.LibraryParams#extras()` of the `https://developer.android.com/reference/kotlin/androidx/media3/session/LibraryResult` returned by `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaBrowser#getLibraryRoot(androidx.media3.session.MediaLibraryService.LibraryParams)`, the preference applies to all browsable items within the browse tree.

If exposed through `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` of a `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#isBrowsable()`, the preference applies to only the immediate browsable children. It takes precedence over preferences received with `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaBrowser#getLibraryRoot(androidx.media3.session.MediaLibraryService.LibraryParams)`.

TYPE: int. Possible values are separate constants.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaBrowser#getLibraryRoot(androidx.media3.session.MediaLibraryService.LibraryParams)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/LibraryResult#params()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata.Builder#setExtras(android.os.Bundle)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_CONTENT_STYLE_LIST_ITEM()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_CONTENT_STYLE_GRID_ITEM()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_LIST_ITEM()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_GRID_ITEM()` |   |

### EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE

```
@UnstableApi
const val EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE = "android.media.browse.CONTENT_STYLE_GROUP_TITLE_HINT": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate that certain instances of `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` are related as a group, with a title that is specified through the bundle value. Items that are children of the same browsable node and have the same title are members of the same group. An app may present a group's items as a contiguous block and display the title alongside the group.

TYPE: String. Should be human readable and localized.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata.Builder#setExtras(android.os.Bundle)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` |   |

### EXTRAS_KEY_CONTENT_STYLE_PLAYABLE

```
@UnstableApi
const val EXTRAS_KEY_CONTENT_STYLE_PLAYABLE = "android.media.browse.CONTENT_STYLE_PLAYABLE_HINT": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used to indicate a preference about how playable instances of `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` are presented.

If exposed through `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.LibraryParams#extras()` of the `https://developer.android.com/reference/kotlin/androidx/media3/session/LibraryResult` returned by `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaBrowser#getLibraryRoot(androidx.media3.session.MediaLibraryService.LibraryParams)`, the preference applies to all playable items within the browse tree.

If exposed through `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` of a `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#isBrowsable()`, the preference applies to only the immediate playable children. It takes precedence over preferences received with `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaBrowser#getLibraryRoot(androidx.media3.session.MediaLibraryService.LibraryParams)`.

TYPE: int. Possible values are separate constants.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaBrowser#getLibraryRoot(androidx.media3.session.MediaLibraryService.LibraryParams)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/LibraryResult#params()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata.Builder#setExtras(android.os.Bundle)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_CONTENT_STYLE_LIST_ITEM()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_CONTENT_STYLE_GRID_ITEM()` |   |

### EXTRAS_KEY_CONTENT_STYLE_SINGLE_ITEM

```
@UnstableApi
const val EXTRAS_KEY_CONTENT_STYLE_SINGLE_ITEM = "android.media.browse.CONTENT_STYLE_SINGLE_ITEM_HINT": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate a preference about how the corresponding `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` is presented.

This preference takes precedence over those expressed by `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_CONTENT_STYLE_PLAYABLE()` and `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_CONTENT_STYLE_BROWSABLE()`.

TYPE: int. Possible values are separate constants.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata.Builder#setExtras(android.os.Bundle)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_CONTENT_STYLE_LIST_ITEM()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_CONTENT_STYLE_GRID_ITEM()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_LIST_ITEM()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_GRID_ITEM()` |   |

### EXTRAS_KEY_DOWNLOAD_PROGRESS

```
@UnstableApi
const val EXTRAS_KEY_DOWNLOAD_PROGRESS = "android.media.browse.extra.DOWNLOAD_PROGRESS": String!
```

Used as a float extra field to denote the current progress during download. The value of this field must be a float number within \[0.0, 1.0\].

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#CUSTOM_COMMAND_DOWNLOAD()` |   |

### EXTRAS_KEY_DOWNLOAD_STATUS

```
@UnstableApi
const val EXTRAS_KEY_DOWNLOAD_STATUS = "android.media.extra.DOWNLOAD_STATUS": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used as a long extra field to indicate the download status of the media item. The value should be one of the following:

- `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_STATUS_NOT_DOWNLOADED()`
- `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_STATUS_DOWNLOADING()`
- `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_STATUS_DOWNLOADED()`

### EXTRAS_KEY_ERROR_RESOLUTION_ACTION_INTENT_COMPAT

```
const val EXTRAS_KEY_ERROR_RESOLUTION_ACTION_INTENT_COMPAT = "android.media.extras.ERROR_RESOLUTION_ACTION_INTENT": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used for an error resolution intent.

Use this key to populate the extras bundle of the `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.LibraryParams` when `https://developer.android.com/reference/kotlin/androidx/media3/session/LibraryResult#ofError(int,androidx.media3.session.MediaLibraryService.LibraryParams)` for an unsuccessful service call.

### EXTRAS_KEY_ERROR_RESOLUTION_ACTION_LABEL_COMPAT

```
const val EXTRAS_KEY_ERROR_RESOLUTION_ACTION_LABEL_COMPAT = "android.media.extras.ERROR_RESOLUTION_ACTION_LABEL": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used for a localized error resolution string.

Use this key to populate the extras bundle of the `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.LibraryParams` when `https://developer.android.com/reference/kotlin/androidx/media3/session/LibraryResult#ofError(int,androidx.media3.session.MediaLibraryService.LibraryParams)` for an unsuccessful service call.

### EXTRAS_KEY_ERROR_RESOLUTION_USING_CAR_APP_LIBRARY_INTENT_COMPAT

```
@UnstableApi
const val EXTRAS_KEY_ERROR_RESOLUTION_USING_CAR_APP_LIBRARY_INTENT_COMPAT = "androidx.media.PlaybackStateCompat.Extras.ERROR_RESOLUTION_USING_CAR_APP_LIBRARY_INTENT": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used to store a `https://developer.android.com/reference/android/app/PendingIntent.html`. When launched, the `https://developer.android.com/reference/android/app/PendingIntent.html` should allow users to resolve the current playback state error.

Applications must also set the error message and `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_ERROR_RESOLUTION_ACTION_LABEL_COMPAT()` for cases in which the intent cannot be auto launched.

Use this key to populate the extras bundle of the `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.LibraryParams` when `https://developer.android.com/reference/kotlin/androidx/media3/session/LibraryResult#ofError(int,androidx.media3.session.MediaLibraryService.LibraryParams)` for an unsuccessful service call. Must be inserted `https://developer.android.com/reference/android/os/Bundle.html#putParcelable(java.lang.String, android.os.Parcelable)`.

TYPE: `https://developer.android.com/reference/android/app/PendingIntent.html`.

### EXTRAS_KEY_IS_ADVERTISEMENT

```
@UnstableApi
const val EXTRAS_KEY_IS_ADVERTISEMENT = "android.media.metadata.ADVERTISEMENT": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate that the corresponding `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` is an advertisement.

TYPE: long (to enable, use value `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_ATTRIBUTE_PRESENT()`)

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata.Builder#setExtras(android.os.Bundle)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` |   |

### EXTRAS_KEY_IS_EXPLICIT

```
@UnstableApi
const val EXTRAS_KEY_IS_EXPLICIT = "android.media.IS_EXPLICIT": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate that the corresponding `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` has explicit content (that is, user discretion is advised when viewing or listening to this content).

TYPE: long (to enable, use value `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_VALUE_ATTRIBUTE_PRESENT()`)

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata.Builder#setExtras(android.os.Bundle)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` |   |

### EXTRAS_KEY_MEDIA_ART_SIZE_PIXELS

```
@UnstableApi
const val EXTRAS_KEY_MEDIA_ART_SIZE_PIXELS = "android.media.extras.MEDIA_ART_SIZE_HINT_PIXELS": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used in `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.LibraryParams#extras()` passed by the `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaBrowser` as root hints to `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.MediaLibrarySession.Callback#onGetLibraryRoot(androidx.media3.session.MediaLibraryService.MediaLibrarySession,androidx.media3.session.MediaSession.ControllerInfo,androidx.media3.session.MediaLibraryService.LibraryParams)` to indicate the recommended size, in pixels, for media art bitmaps. Much smaller images may not render well, and much larger images may cause inefficient resource consumption.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaBrowser#getLibraryRoot(androidx.media3.session.MediaLibraryService.LibraryParams)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.MediaLibrarySession.Callback#onGetLibraryRoot(androidx.media3.session.MediaLibraryService.MediaLibrarySession,androidx.media3.session.MediaSession.ControllerInfo,androidx.media3.session.MediaLibraryService.LibraryParams)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.LibraryParams#extras()` |   |

### EXTRAS_KEY_MEDIA_ID_COMPAT

```
@UnstableApi
const val EXTRAS_KEY_MEDIA_ID_COMPAT = "androidx.media.PlaybackStateCompat.Extras.KEY_MEDIA_ID": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used for the media id of the media being played.

Use this key in the extras bundle of the legacy .

### EXTRAS_KEY_MEDIA_TYPE_COMPAT

```
@UnstableApi
const val EXTRAS_KEY_MEDIA_TYPE_COMPAT = "androidx.media3.session.EXTRAS_KEY_MEDIA_TYPE_COMPAT": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used to indicate the `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata.MediaType` in the legacy `
android.support.v4.media.MediaDescriptionCompat` as a long extra and as a long value in `
android.support.v4.media.MediaMetadataCompat`.

### EXTRAS_KEY_PLAYBACK_SPEED_COMPAT

```
@UnstableApi
const val EXTRAS_KEY_PLAYBACK_SPEED_COMPAT = "EXO_SPEED": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used for the value of `Player.getPlaybackParameters().speed`.

Use this key in the extras bundle of the legacy .

### EXTRAS_KEY_PLAYLIST_ARTWORK_URI

```
@UnstableApi
const val EXTRAS_KEY_PLAYLIST_ARTWORK_URI = "androidx.media3.session.EXTRAS_KEY_PLAYLIST_ARTWORK_URI": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used to indicate the playlist artwork URI (corresponding to `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#getPlaylistMetadata()``.artworkUri`) in the legacy `
android.support.v4.media.MediaDescriptionCompat` as a String extra and as a String value in `android.support.v4.media.MediaMetadataCompat`.

### EXTRAS_KEY_PLAYLIST_ID

```
@UnstableApi
const val EXTRAS_KEY_PLAYLIST_ID = "androidx.media3.session.EXTRAS_KEY_PLAYLIST_ID": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used to indicate the `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#playlistId()` in the legacy `
android.support.v4.media.MediaDescriptionCompat` as a String extra and as a String value in `android.support.v4.media.MediaMetadataCompat`.

### EXTRAS_KEY_PLAYLIST_TITLE

```
@UnstableApi
const val EXTRAS_KEY_PLAYLIST_TITLE = "androidx.media3.session.EXTRAS_KEY_PLAYLIST_TITLE": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used to indicate the playlist title (corresponding to `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#getPlaylistMetadata()``.title`) in the legacy `
android.support.v4.media.MediaDescriptionCompat` as a String extra and as a String value in `android.support.v4.media.MediaMetadataCompat`.

### EXTRAS_KEY_ROOT_CHILDREN_LIMIT

```
@UnstableApi
const val EXTRAS_KEY_ROOT_CHILDREN_LIMIT = "androidx.media.MediaBrowserCompat.Extras.KEY_ROOT_CHILDREN_LIMIT": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used in `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.LibraryParams#extras()` passed to `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.MediaLibrarySession.Callback#onGetLibraryRoot(androidx.media3.session.MediaLibraryService.MediaLibrarySession,androidx.media3.session.MediaSession.ControllerInfo,androidx.media3.session.MediaLibraryService.LibraryParams)` to indicate the maximum number of children of the root node that can be supported by the `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaBrowser`. Excess root children may be omitted or made less discoverable.

TYPE: int

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.MediaLibrarySession.Callback#onGetLibraryRoot(androidx.media3.session.MediaLibraryService.MediaLibrarySession,androidx.media3.session.MediaSession.ControllerInfo,androidx.media3.session.MediaLibraryService.LibraryParams)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaBrowser#getLibraryRoot(androidx.media3.session.MediaLibraryService.LibraryParams)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.LibraryParams#extras()` |   |

### EXTRAS_KEY_SLOT_RESERVATION_SEEK_TO_NEXT

```
const val EXTRAS_KEY_SLOT_RESERVATION_SEEK_TO_NEXT = "android.media.playback.ALWAYS_RESERVE_SPACE_FOR.ACTION_SKIP_TO_NEXT": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key to indicate a preference that a region of space for the skip to next control should always be blocked out in the UI, even when the seek to next standard action is not supported.

This may be used when the session temporarily disallows `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#COMMAND_SEEK_TO_NEXT()` by design.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession#setSessionExtras(android.os.Bundle)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaController.Listener#onExtrasChanged(androidx.media3.session.MediaController,android.os.Bundle)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#COMMAND_SEEK_TO_NEXT()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#COMMAND_SEEK_TO_NEXT_MEDIA_ITEM()` |   |

### EXTRAS_KEY_SLOT_RESERVATION_SEEK_TO_PREV

```
const val EXTRAS_KEY_SLOT_RESERVATION_SEEK_TO_PREV = "android.media.playback.ALWAYS_RESERVE_SPACE_FOR.ACTION_SKIP_TO_PREVIOUS": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key to indicate a preference that a region of space for the skip to previous control should always be blocked out in the UI, even when the seek to previous standard action is not supported.

This may be used when the session temporarily disallows `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#COMMAND_SEEK_TO_PREVIOUS()` by design.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession#setSessionExtras(android.os.Bundle)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaController.Listener#onExtrasChanged(androidx.media3.session.MediaController,android.os.Bundle)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#COMMAND_SEEK_TO_PREVIOUS()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM()` |   |

### EXTRAS_KEY_SUGGESTED_TYPE

```
@UnstableApi
const val EXTRAS_KEY_SUGGESTED_TYPE = "androidx.media3.session.EXTRAS_KEY_SUGGESTED_TYPE": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used to indicate the suggested content type in `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.LibraryParams#extras()` of a `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.MediaLibrarySession.Callback#onGetChildren(androidx.media3.session.MediaLibraryService.MediaLibrarySession,androidx.media3.session.MediaSession.ControllerInfo,java.lang.String,int,int,androidx.media3.session.MediaLibraryService.LibraryParams)` request.

TYPE: String.

### EXTRAS_KEY_TTL_SECONDS

```
@UnstableApi
const val EXTRAS_KEY_TTL_SECONDS = "androidx.media3.session.EXTRAS_KEY_TTL_SECONDS": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used to indicate the cache time-to-live (TTL) in seconds for suggestions in `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.LibraryParams#extras()` of a `https://developer.android.com/reference/kotlin/androidx/media3/session/LibraryResult` returned by `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.MediaLibrarySession.Callback#onGetChildren(androidx.media3.session.MediaLibraryService.MediaLibrarySession,androidx.media3.session.MediaSession.ControllerInfo,java.lang.String,int,int,androidx.media3.session.MediaLibraryService.LibraryParams)`.

TYPE: long.

### EXTRAS_VALUE_ATTRIBUTE_PRESENT

```
@UnstableApi
const val EXTRAS_VALUE_ATTRIBUTE_PRESENT = 1: Long
```

`https://developer.android.com/reference/android/os/Bundle.html` value used to indicate the presence of an attribute described by its corresponding key.

### EXTRAS_VALUE_COMPLETION_STATUS_FULLY_PLAYED

```
@UnstableApi
const val EXTRAS_VALUE_COMPLETION_STATUS_FULLY_PLAYED = 2: Int
```

`https://developer.android.com/reference/android/os/Bundle.html` value used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate that the corresponding `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` has been fully played by the user.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata.Builder#setExtras(android.os.Bundle)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_COMPLETION_STATUS()` |   |

### EXTRAS_VALUE_COMPLETION_STATUS_NOT_PLAYED

```
@UnstableApi
const val EXTRAS_VALUE_COMPLETION_STATUS_NOT_PLAYED = 0: Int
```

`https://developer.android.com/reference/android/os/Bundle.html` value used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate that the corresponding `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` has not been played by the user.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata.Builder#setExtras(android.os.Bundle)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_COMPLETION_STATUS()` |   |

### EXTRAS_VALUE_COMPLETION_STATUS_PARTIALLY_PLAYED

```
@UnstableApi
const val EXTRAS_VALUE_COMPLETION_STATUS_PARTIALLY_PLAYED = 1: Int
```

`https://developer.android.com/reference/android/os/Bundle.html` value used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate that the corresponding `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` has been partially played by the user.

`https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_COMPLETION_PERCENTAGE()` must be specified to indicate how far the item has been played.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata.Builder#setExtras(android.os.Bundle)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_COMPLETION_STATUS()` |   |

### EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_GRID_ITEM

```
@UnstableApi
const val EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_GRID_ITEM = 4: Int
```

`https://developer.android.com/reference/android/os/Bundle.html` value used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate a preference that browsable instances of `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` should be presented as "category" grid items. This means the items provide icons that render well when they do **not** fill all of the available area.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata.Builder#setExtras(android.os.Bundle)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_CONTENT_STYLE_BROWSABLE()` |   |

### EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_LIST_ITEM

```
@UnstableApi
const val EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_LIST_ITEM = 3: Int
```

`https://developer.android.com/reference/android/os/Bundle.html` value used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate a preference that browsable instances of `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` should be presented as "category" list items. This means the items provide icons that render well when they do **not** fill all of the available area.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata.Builder#setExtras(android.os.Bundle)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_CONTENT_STYLE_BROWSABLE()` |   |

### EXTRAS_VALUE_CONTENT_STYLE_GRID_ITEM

```
@UnstableApi
const val EXTRAS_VALUE_CONTENT_STYLE_GRID_ITEM = 2: Int
```

`https://developer.android.com/reference/android/os/Bundle.html` value used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate a preference that certain instances of `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` should be presented as grid items.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata.Builder#setExtras(android.os.Bundle)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_CONTENT_STYLE_BROWSABLE()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_CONTENT_STYLE_PLAYABLE()` |   |

### EXTRAS_VALUE_CONTENT_STYLE_LIST_ITEM

```
@UnstableApi
const val EXTRAS_VALUE_CONTENT_STYLE_LIST_ITEM = 1: Int
```

`https://developer.android.com/reference/android/os/Bundle.html` value used in `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` to indicate a preference that certain instances of `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` should be presented as list items.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata.Builder#setExtras(android.os.Bundle)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#extras()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_CONTENT_STYLE_BROWSABLE()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_CONTENT_STYLE_PLAYABLE()` |   |

### EXTRAS_VALUE_STATUS_DOWNLOADED

```
@UnstableApi
const val EXTRAS_VALUE_STATUS_DOWNLOADED = 2: Long
```

The extras value to indicate that the media item is downloaded for later offline playback. Used with `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_DOWNLOAD_STATUS()`.

### EXTRAS_VALUE_STATUS_DOWNLOADING

```
@UnstableApi
const val EXTRAS_VALUE_STATUS_DOWNLOADING = 1: Long
```

The extras value to indicate that the media item is being downloaded. Used with `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_DOWNLOAD_STATUS()`.

### EXTRAS_VALUE_STATUS_NOT_DOWNLOADED

```
@UnstableApi
const val EXTRAS_VALUE_STATUS_NOT_DOWNLOADED = 0: Long
```

The extras value to indicate that the media item is not downloaded. Used with `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaConstants#EXTRAS_KEY_DOWNLOAD_STATUS()`.

### EXTRA_KEY_MEDIA_ID

```
@UnstableApi
const val EXTRA_KEY_MEDIA_ID = "androidx.media.utils.extras.KEY_CUSTOM_BROWSER_ACTION_MEDIA_ITEM_ID": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used for a media item ID.

### EXTRA_KEY_ROOT_CHILDREN_BROWSABLE_ONLY

```
@UnstableApi
const val EXTRA_KEY_ROOT_CHILDREN_BROWSABLE_ONLY = "androidx.media3.session.LibraryParams.Extras.KEY_ROOT_CHILDREN_BROWSABLE_ONLY": String!
```

`https://developer.android.com/reference/android/os/Bundle.html` key used in `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.LibraryParams#extras()` passed to `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.MediaLibrarySession.Callback#onGetLibraryRoot(androidx.media3.session.MediaLibraryService.MediaLibrarySession,androidx.media3.session.MediaSession.ControllerInfo,androidx.media3.session.MediaLibraryService.LibraryParams)` to indicate whether only browsable media items are supported as children of the root node by the `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaBrowser`. If true, root children that are not browsable may be omitted or made less discoverable.

TYPE: boolean.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.MediaLibrarySession.Callback#onGetLibraryRoot(androidx.media3.session.MediaLibraryService.MediaLibrarySession,androidx.media3.session.MediaSession.ControllerInfo,androidx.media3.session.MediaLibraryService.LibraryParams)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaBrowser#getLibraryRoot(androidx.media3.session.MediaLibraryService.LibraryParams)` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaLibraryService.LibraryParams#extras()` |   |