# MediaItem

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

*** ** * ** ***

<br />

```
class MediaItem
```

<br />

*** ** * ** ***

Representation of a media item.

## Summary

| ### Nested types |
|---|
| `class https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.AdsConfiguration` Configuration for playing back linear ads with a media item. |
| `class https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.AdsConfiguration.Builder` Builder for `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.AdsConfiguration` instances. |
| `class https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.Builder` A builder for `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` instances. |
| `class https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.ClippingConfiguration` Optionally clips the media item to a custom start and end position. |
| `class https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.ClippingConfiguration.Builder` Builder for `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.ClippingConfiguration` instances. |
| `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi class https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.ClippingProperties : https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.ClippingConfiguration` **This class is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.ClippingConfiguration` instead. <br /> |
| `class https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.DrmConfiguration` DRM configuration for a media item. |
| `class https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.DrmConfiguration.Builder` Builder for `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.DrmConfiguration`. |
| `class https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.LiveConfiguration` Live playback configuration. |
| `class https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.LiveConfiguration.Builder` Builder for `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.LiveConfiguration` instances. |
| `class https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.LocalConfiguration` Properties for local playback. |
| `class https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.RequestMetadata` Metadata that helps the player to understand a playback request represented by a `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem`. |
| `class https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.RequestMetadata.Builder` Builder for `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.RequestMetadata` instances. |
| `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi class https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.Subtitle : https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.SubtitleConfiguration` **This class is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.SubtitleConfiguration` instead <br /> |
| `class https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.SubtitleConfiguration` Properties for a text track. |
| `class https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.SubtitleConfiguration.Builder` Builder for `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.SubtitleConfiguration` instances. |

| ### Constants |
|---|---|
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#DEFAULT_MEDIA_ID() = ""` The default media ID that is used if the media ID is not explicitly set by `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.Builder#setMediaId(java.lang.String)`. |
| `const https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!` | `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#EMPTY()` Empty `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem`. |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.Builder!` | `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#buildUpon()()` Returns a `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.Builder` initialized with the values of this instance. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#equals(java.lang.Object)(obj: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)` |
| `java-static https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi [fromBundle](https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#fromBundle(android.os.Bundle))(bundle: https://developer.android.com/reference/android/os/Bundle.html!)` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#fromBundle(android.os.Bundle,int)` instead. <br /> |
| `java-static https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#fromBundle(android.os.Bundle,int)(bundle: https://developer.android.com/reference/android/os/Bundle.html!, interfaceVersion: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Restores a `MediaItem` from a `https://developer.android.com/reference/android/os/Bundle.html`. |
| `java-static https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!` | `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#fromUri(java.lang.String)(uri: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` Creates a `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` for the given URI. |
| `java-static https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!` | `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#fromUri(android.net.Uri)(uri: https://developer.android.com/reference/android/net/Uri.html!)` Creates a `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` for the given `https://developer.android.com/reference/android/net/Uri.html`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#hashCode()()` |
| `https://developer.android.com/reference/android/os/Bundle.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi [toBundle](https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#toBundle())()` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#toBundle(int)` instead. <br /> |
| `https://developer.android.com/reference/android/os/Bundle.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#toBundle(int)(interfaceVersion: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Returns a `https://developer.android.com/reference/android/os/Bundle.html` representing the information stored in this object. |
| `https://developer.android.com/reference/android/os/Bundle.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi [toBundleIncludeLocalConfiguration](https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#toBundleIncludeLocalConfiguration())()` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#toBundleIncludeLocalConfiguration(int)` instead. <br /> |
| `https://developer.android.com/reference/android/os/Bundle.html!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#toBundleIncludeLocalConfiguration(int)(interfaceVersion: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Returns a `https://developer.android.com/reference/android/os/Bundle.html` representing the information stored in this `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#MediaItem(java.lang.String,androidx.media3.common.MediaItem.ClippingProperties,androidx.media3.common.MediaItem.LocalConfiguration,androidx.media3.common.MediaItem.LiveConfiguration,androidx.media3.common.MediaMetadata,androidx.media3.common.MediaItem.RequestMetadata)` object, while including the `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#localConfiguration()` field if it is not null (otherwise skips it). |

| ### Public properties |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.ClippingConfiguration!` | `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#clippingConfiguration()` The clipping properties. |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.ClippingProperties!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#clippingProperties()` **This property is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#clippingConfiguration()` instead. <br /> |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.LiveConfiguration!` | `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#liveConfiguration()` The live playback configuration. |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.LocalConfiguration?` | `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#localConfiguration()` Optional configuration for local playback. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#mediaId()` Identifies the media item. |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata!` | `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#mediaMetadata()` The media metadata. |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.LocalConfiguration?` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#playbackProperties()` **This property is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#localConfiguration()` instead. <br /> |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.RequestMetadata!` | `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#requestMetadata()` The media `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.RequestMetadata`. |

## Constants

### DEFAULT_MEDIA_ID

```
const val DEFAULT_MEDIA_ID = "": String!
```

The default media ID that is used if the media ID is not explicitly set by `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.Builder#setMediaId(java.lang.String)`.

### EMPTY

```
const val EMPTY: MediaItem!
```

Empty `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem`.

## Public functions

### buildUpon

```
fun buildUpon(): MediaItem.Builder!
```

Returns a `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.Builder` initialized with the values of this instance.

### equals

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

### fromBundle

```
@UnstableApi
java-static fun [fromBundle](https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#fromBundle(android.os.Bundle))(bundle: Bundle!): MediaItem!
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#fromBundle(android.os.Bundle,int)` instead.

### fromBundle

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

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

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

### fromUri

```
java-static fun fromUri(uri: String!): MediaItem!
```

Creates a `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` for the given URI.

| Parameters |
|---|---|
| `uri: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | The URI. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!` | An `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` for the given URI. |

### fromUri

```
java-static fun fromUri(uri: Uri!): MediaItem!
```

Creates a `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` for the given `https://developer.android.com/reference/android/net/Uri.html`.

| Parameters |
|---|---|
| `uri: https://developer.android.com/reference/android/net/Uri.html!` | The `https://developer.android.com/reference/android/net/Uri.html`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!` | An `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` for the given URI. |

### hashCode

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

### toBundle

```
@UnstableApi
fun [toBundle](https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#toBundle())(): Bundle!
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#toBundle(int)` instead.

### toBundle

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

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

It omits the `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#localConfiguration()` field. The `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#localConfiguration()` of an instance restored from such a bundle by `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#fromBundle(android.os.Bundle)` will be `null`.

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

### toBundleIncludeLocalConfiguration

```
@UnstableApi
fun [toBundleIncludeLocalConfiguration](https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#toBundleIncludeLocalConfiguration())(): Bundle!
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#toBundleIncludeLocalConfiguration(int)` instead.

### toBundleIncludeLocalConfiguration

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

Returns a `https://developer.android.com/reference/android/os/Bundle.html` representing the information stored in this `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#MediaItem(java.lang.String,androidx.media3.common.MediaItem.ClippingProperties,androidx.media3.common.MediaItem.LocalConfiguration,androidx.media3.common.MediaItem.LiveConfiguration,androidx.media3.common.MediaMetadata,androidx.media3.common.MediaItem.RequestMetadata)` object, while including the `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#localConfiguration()` field if it is not null (otherwise skips it).

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

## Public properties

### clippingConfiguration

```
val clippingConfiguration: MediaItem.ClippingConfiguration!
```

The clipping properties.

### clippingProperties

```
@UnstableApi
val clippingProperties: MediaItem.ClippingProperties!
```

> [!CAUTION]
> **This property is deprecated.**   
>
> Use `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#clippingConfiguration()` instead.

### liveConfiguration

```
val liveConfiguration: MediaItem.LiveConfiguration!
```

The live playback configuration.

### localConfiguration

```
val localConfiguration: MediaItem.LocalConfiguration?
```

Optional configuration for local playback. May be `null` if shared over process boundaries.

### mediaId

```
val mediaId: String!
```

Identifies the media item.

### mediaMetadata

```
val mediaMetadata: MediaMetadata!
```

The media metadata.

### playbackProperties

```
@UnstableApi
val playbackProperties: MediaItem.LocalConfiguration?
```

> [!CAUTION]
> **This property is deprecated.**   
>
> Use `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem#localConfiguration()` instead.

### requestMetadata

```
val requestMetadata: MediaItem.RequestMetadata!
```

The media `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.RequestMetadata`.