# MediaItem.Builder

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.Builder)

*** ** * ** ***


```
public final class MediaItem.Builder
```

<br />

*** ** * ** ***

A builder for `https://developer.android.com/reference/androidx/media3/common/MediaItem` instances.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#Builder()()` Creates a builder. |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/MediaItem` | `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#build()()` Returns a new `https://developer.android.com/reference/androidx/media3/common/MediaItem` instance with the current builder values. |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setAdTagUri](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setAdTagUri(java.lang.String))(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html adTagUri)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setAdsConfiguration(androidx.media3.common.MediaItem.AdsConfiguration)`, parse the `adTagUri` with `https://developer.android.com/reference/android/net/Uri.html#parse(java.lang.String)` and pass the result to `https://developer.android.com/reference/androidx/media3/common/MediaItem.AdsConfiguration.Builder#Builder(android.net.Uri)` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setAdTagUri](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setAdTagUri(android.net.Uri))(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/net/Uri.html adTagUri)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setAdsConfiguration(androidx.media3.common.MediaItem.AdsConfiguration)` and pass the `adTagUri` to `https://developer.android.com/reference/androidx/media3/common/MediaItem.AdsConfiguration.Builder#Builder(android.net.Uri)` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setAdTagUri](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setAdTagUri(android.net.Uri,java.lang.Object))(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/net/Uri.html adTagUri, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/Object.html adsId)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setAdsConfiguration(androidx.media3.common.MediaItem.AdsConfiguration)`, pass the `adTagUri` to `https://developer.android.com/reference/androidx/media3/common/MediaItem.AdsConfiguration.Builder#Builder(android.net.Uri)` and the `adsId` to `https://developer.android.com/reference/androidx/media3/common/MediaItem.AdsConfiguration.Builder#setAdsId(java.lang.Object)` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setAdsConfiguration(androidx.media3.common.MediaItem.AdsConfiguration)( @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/MediaItem.AdsConfiguration adsConfiguration )` Sets the optional `https://developer.android.com/reference/androidx/media3/common/MediaItem.AdsConfiguration`. |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setClipEndPositionMs](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setClipEndPositionMs(long))(long endPositionMs)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setClippingConfiguration(androidx.media3.common.MediaItem.ClippingConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#setEndPositionMs(long)` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setClipRelativeToDefaultPosition](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setClipRelativeToDefaultPosition(boolean))(boolean relativeToDefaultPosition)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setClippingConfiguration(androidx.media3.common.MediaItem.ClippingConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#setRelativeToDefaultPosition(boolean)` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setClipRelativeToLiveWindow](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setClipRelativeToLiveWindow(boolean))(boolean relativeToLiveWindow)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setClippingConfiguration(androidx.media3.common.MediaItem.ClippingConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#setRelativeToLiveWindow(boolean)` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setClipStartPositionMs](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setClipStartPositionMs(long))(@https://developer.android.com/reference/androidx/annotation/IntRange(from = 0) long startPositionMs)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setClippingConfiguration(androidx.media3.common.MediaItem.ClippingConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#setStartPositionMs(long)` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setClipStartsAtKeyFrame](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setClipStartsAtKeyFrame(boolean))(boolean startsAtKeyFrame)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setClippingConfiguration(androidx.media3.common.MediaItem.ClippingConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#setStartsAtKeyFrame(boolean)` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setClippingConfiguration(androidx.media3.common.MediaItem.ClippingConfiguration)( https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration clippingConfiguration )` Sets the `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration`, defaults to `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration#UNSET()`. |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setCustomCacheKey(java.lang.String)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html customCacheKey)` Sets the optional custom cache key (only used for progressive streams). |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmConfiguration(androidx.media3.common.MediaItem.DrmConfiguration)( @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration drmConfiguration )` Sets the optional DRM configuration. |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setDrmForceDefaultLicenseUri](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmForceDefaultLicenseUri(boolean))(boolean forceDefaultLicenseUri)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmConfiguration(androidx.media3.common.MediaItem.DrmConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#setForceDefaultLicenseUri(boolean)` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setDrmKeySetId](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmKeySetId(byte[]))(@https://developer.android.com/reference/androidx/annotation/Nullable byte[] keySetId)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmConfiguration(androidx.media3.common.MediaItem.DrmConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#setKeySetId(byte[])` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setDrmLicenseRequestHeaders](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmLicenseRequestHeaders(java.util.Map<java.lang.String,java.lang.String>))( @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/util/Map.html<https://developer.android.com/reference/java/lang/String.html, https://developer.android.com/reference/java/lang/String.html> licenseRequestHeaders )` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmConfiguration(androidx.media3.common.MediaItem.DrmConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#setLicenseRequestHeaders(java.util.Map<java.lang.String,java.lang.String>)` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setDrmLicenseUri](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmLicenseUri(java.lang.String))(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html licenseUri)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmConfiguration(androidx.media3.common.MediaItem.DrmConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#setLicenseUri(java.lang.String)` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setDrmLicenseUri](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmLicenseUri(android.net.Uri))(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/net/Uri.html licenseUri)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmConfiguration(androidx.media3.common.MediaItem.DrmConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#setLicenseUri(android.net.Uri)` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setDrmMultiSession](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmMultiSession(boolean))(boolean multiSession)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmConfiguration(androidx.media3.common.MediaItem.DrmConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#setMultiSession(boolean)` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setDrmPlayClearContentWithoutKey](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmPlayClearContentWithoutKey(boolean))(boolean playClearContentWithoutKey)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmConfiguration(androidx.media3.common.MediaItem.DrmConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#setPlayClearContentWithoutKey(boolean)` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setDrmSessionForClearPeriods](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmSessionForClearPeriods(boolean))(boolean sessionForClearPeriods)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmConfiguration(androidx.media3.common.MediaItem.DrmConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#setForceSessionsForAudioAndVideoTracks(boolean)` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setDrmSessionForClearTypes](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmSessionForClearTypes(java.util.List<java.lang.Integer>))( @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/media3/common/C.TrackType https://developer.android.com/reference/java/lang/Integer.html> sessionForClearTypes )` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmConfiguration(androidx.media3.common.MediaItem.DrmConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#setForcedSessionTrackTypes(java.util.List<java.lang.Integer>)` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setDrmUuid](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmUuid(java.util.UUID))(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/util/UUID.html uuid)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmConfiguration(androidx.media3.common.MediaItem.DrmConfiguration)` and pass the `uuid` to `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#Builder(java.util.UUID)` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setImageDurationMs(long)(long imageDurationMs)` Sets the image duration in video output, in milliseconds. |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setLiveConfiguration(androidx.media3.common.MediaItem.LiveConfiguration)(https://developer.android.com/reference/androidx/media3/common/MediaItem.LiveConfiguration liveConfiguration)` Sets the `https://developer.android.com/reference/androidx/media3/common/MediaItem.LiveConfiguration`. |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setLiveMaxOffsetMs](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setLiveMaxOffsetMs(long))(long liveMaxOffsetMs)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setLiveConfiguration(androidx.media3.common.MediaItem.LiveConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.LiveConfiguration.Builder#setMaxOffsetMs(long)`. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setLiveMaxPlaybackSpeed](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setLiveMaxPlaybackSpeed(float))(float maxPlaybackSpeed)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setLiveConfiguration(androidx.media3.common.MediaItem.LiveConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.LiveConfiguration.Builder#setMaxPlaybackSpeed(float)`. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setLiveMinOffsetMs](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setLiveMinOffsetMs(long))(long liveMinOffsetMs)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setLiveConfiguration(androidx.media3.common.MediaItem.LiveConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.LiveConfiguration.Builder#setMinOffsetMs(long)`. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setLiveMinPlaybackSpeed](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setLiveMinPlaybackSpeed(float))(float minPlaybackSpeed)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setLiveConfiguration(androidx.media3.common.MediaItem.LiveConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.LiveConfiguration.Builder#setMinPlaybackSpeed(float)`. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setLiveTargetOffsetMs](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setLiveTargetOffsetMs(long))(long liveTargetOffsetMs)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setLiveConfiguration(androidx.media3.common.MediaItem.LiveConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.LiveConfiguration.Builder#setTargetOffsetMs(long)`. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setMediaId(java.lang.String)(https://developer.android.com/reference/java/lang/String.html mediaId)` Sets the optional media ID which identifies the media item. |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setMediaMetadata(androidx.media3.common.MediaMetadata)(https://developer.android.com/reference/androidx/media3/common/MediaMetadata mediaMetadata)` Sets the media metadata. |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setMimeType(java.lang.String)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html mimeType)` Sets the optional MIME type. |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setRequestMetadata(androidx.media3.common.MediaItem.RequestMetadata)(https://developer.android.com/reference/androidx/media3/common/MediaItem.RequestMetadata requestMetadata)` Sets the request metadata. |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setStreamKeys(java.util.List<androidx.media3.common.StreamKey>)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/StreamKey> streamKeys)` Sets the optional stream keys by which the manifest is filtered (only used for adaptive streams). |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setSubtitleConfigurations(java.util.List<androidx.media3.common.MediaItem.SubtitleConfiguration>)( https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/MediaItem.SubtitleConfiguration> subtitleConfigurations )` Sets the optional subtitles. |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [setSubtitles](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setSubtitles(java.util.List<androidx.media3.common.MediaItem.Subtitle>))(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/MediaItem.Subtitle> subtitles)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setSubtitleConfigurations(java.util.List<androidx.media3.common.MediaItem.SubtitleConfiguration>)` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setTag(java.lang.Object)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/Object.html tag)` Sets the optional tag for custom attributes. |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setUri(java.lang.String)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html uri)` Sets the optional URI. |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setUri(android.net.Uri)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/net/Uri.html uri)` Sets the optional URI. |

## Public constructors

### Builder

```
public Builder()
```

Creates a builder.

## Public methods

### build

```
public MediaItem build()
```

Returns a new `https://developer.android.com/reference/androidx/media3/common/MediaItem` instance with the current builder values.

### setAdTagUri

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setAdTagUri](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setAdTagUri(java.lang.String))(@Nullable String adTagUri)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setAdsConfiguration(androidx.media3.common.MediaItem.AdsConfiguration)`, parse the `adTagUri` with `https://developer.android.com/reference/android/net/Uri.html#parse(java.lang.String)` and pass the result to `https://developer.android.com/reference/androidx/media3/common/MediaItem.AdsConfiguration.Builder#Builder(android.net.Uri)` instead.

### setAdTagUri

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setAdTagUri](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setAdTagUri(android.net.Uri))(@Nullable Uri adTagUri)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setAdsConfiguration(androidx.media3.common.MediaItem.AdsConfiguration)` and pass the `adTagUri` to `https://developer.android.com/reference/androidx/media3/common/MediaItem.AdsConfiguration.Builder#Builder(android.net.Uri)` instead.

### setAdTagUri

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setAdTagUri](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setAdTagUri(android.net.Uri,java.lang.Object))(@Nullable Uri adTagUri, @Nullable Object adsId)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setAdsConfiguration(androidx.media3.common.MediaItem.AdsConfiguration)`, pass the `adTagUri` to `https://developer.android.com/reference/androidx/media3/common/MediaItem.AdsConfiguration.Builder#Builder(android.net.Uri)` and the `adsId` to `https://developer.android.com/reference/androidx/media3/common/MediaItem.AdsConfiguration.Builder#setAdsId(java.lang.Object)` instead.

### setAdsConfiguration

```
@CanIgnoreReturnValue
public MediaItem.Builder setAdsConfiguration(
    @Nullable MediaItem.AdsConfiguration adsConfiguration
)
```

Sets the optional `https://developer.android.com/reference/androidx/media3/common/MediaItem.AdsConfiguration`.

This method should only be called if `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setUri(java.lang.String)` is passed a non-null value.

### setClipEndPositionMs

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setClipEndPositionMs](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setClipEndPositionMs(long))(long endPositionMs)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setClippingConfiguration(androidx.media3.common.MediaItem.ClippingConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#setEndPositionMs(long)` instead.

### setClipRelativeToDefaultPosition

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setClipRelativeToDefaultPosition](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setClipRelativeToDefaultPosition(boolean))(boolean relativeToDefaultPosition)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setClippingConfiguration(androidx.media3.common.MediaItem.ClippingConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#setRelativeToDefaultPosition(boolean)` instead.

### setClipRelativeToLiveWindow

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setClipRelativeToLiveWindow](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setClipRelativeToLiveWindow(boolean))(boolean relativeToLiveWindow)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setClippingConfiguration(androidx.media3.common.MediaItem.ClippingConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#setRelativeToLiveWindow(boolean)` instead.

### setClipStartPositionMs

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setClipStartPositionMs](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setClipStartPositionMs(long))(@IntRange(from = 0) long startPositionMs)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setClippingConfiguration(androidx.media3.common.MediaItem.ClippingConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#setStartPositionMs(long)` instead.

### setClipStartsAtKeyFrame

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setClipStartsAtKeyFrame](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setClipStartsAtKeyFrame(boolean))(boolean startsAtKeyFrame)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setClippingConfiguration(androidx.media3.common.MediaItem.ClippingConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#setStartsAtKeyFrame(boolean)` instead.

### setClippingConfiguration

```
@CanIgnoreReturnValue
public MediaItem.Builder setClippingConfiguration(
    MediaItem.ClippingConfiguration clippingConfiguration
)
```

Sets the `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration`, defaults to `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration#UNSET()`.

### setCustomCacheKey

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder setCustomCacheKey(@Nullable String customCacheKey)
```

Sets the optional custom cache key (only used for progressive streams).

This method should only be called if `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setUri(java.lang.String)` is passed a non-null value.

### setDrmConfiguration

```
@CanIgnoreReturnValue
public MediaItem.Builder setDrmConfiguration(
    @Nullable MediaItem.DrmConfiguration drmConfiguration
)
```

Sets the optional DRM configuration.

### setDrmForceDefaultLicenseUri

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setDrmForceDefaultLicenseUri](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmForceDefaultLicenseUri(boolean))(boolean forceDefaultLicenseUri)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmConfiguration(androidx.media3.common.MediaItem.DrmConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#setForceDefaultLicenseUri(boolean)` instead.

### setDrmKeySetId

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setDrmKeySetId](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmKeySetId(byte[]))(@Nullable byte[] keySetId)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmConfiguration(androidx.media3.common.MediaItem.DrmConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#setKeySetId(byte[])` instead.

### setDrmLicenseRequestHeaders

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setDrmLicenseRequestHeaders](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmLicenseRequestHeaders(java.util.Map<java.lang.String,java.lang.String>))(
    @Nullable Map<String, String> licenseRequestHeaders
)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmConfiguration(androidx.media3.common.MediaItem.DrmConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#setLicenseRequestHeaders(java.util.Map<java.lang.String,java.lang.String>)` instead. Note that `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#setLicenseRequestHeaders(java.util.Map<java.lang.String,java.lang.String>)` doesn't accept null, use an empty map to clear the headers.

### setDrmLicenseUri

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setDrmLicenseUri](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmLicenseUri(java.lang.String))(@Nullable String licenseUri)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmConfiguration(androidx.media3.common.MediaItem.DrmConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#setLicenseUri(java.lang.String)` instead.

### setDrmLicenseUri

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setDrmLicenseUri](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmLicenseUri(android.net.Uri))(@Nullable Uri licenseUri)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmConfiguration(androidx.media3.common.MediaItem.DrmConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#setLicenseUri(android.net.Uri)` instead.

### setDrmMultiSession

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setDrmMultiSession](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmMultiSession(boolean))(boolean multiSession)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmConfiguration(androidx.media3.common.MediaItem.DrmConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#setMultiSession(boolean)` instead.

### setDrmPlayClearContentWithoutKey

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setDrmPlayClearContentWithoutKey](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmPlayClearContentWithoutKey(boolean))(boolean playClearContentWithoutKey)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmConfiguration(androidx.media3.common.MediaItem.DrmConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#setPlayClearContentWithoutKey(boolean)` instead.

### setDrmSessionForClearPeriods

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setDrmSessionForClearPeriods](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmSessionForClearPeriods(boolean))(boolean sessionForClearPeriods)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmConfiguration(androidx.media3.common.MediaItem.DrmConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#setForceSessionsForAudioAndVideoTracks(boolean)` instead.

### setDrmSessionForClearTypes

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setDrmSessionForClearTypes](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmSessionForClearTypes(java.util.List<java.lang.Integer>))(
    @Nullable List<@C.TrackType Integer> sessionForClearTypes
)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmConfiguration(androidx.media3.common.MediaItem.DrmConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#setForcedSessionTrackTypes(java.util.List<java.lang.Integer>)` instead. Note that `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#setForcedSessionTrackTypes(java.util.List<java.lang.Integer>)` doesn't accept null, use an empty list to clear the contents.

### setDrmUuid

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setDrmUuid](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmUuid(java.util.UUID))(@Nullable UUID uuid)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setDrmConfiguration(androidx.media3.common.MediaItem.DrmConfiguration)` and pass the `uuid` to `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#Builder(java.util.UUID)` instead.

### setImageDurationMs

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder setImageDurationMs(long imageDurationMs)
```

Sets the image duration in video output, in milliseconds.

Should be set if `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setUri(java.lang.String)` is set and resolves to an image, otherwise the duration of the image may default to a very small value. Ignored otherwise.

Motion photos will be rendered as images if this parameter is set, and as videos otherwise.

Default value is `https://developer.android.com/reference/androidx/media3/common/C#TIME_UNSET()`.

### setLiveConfiguration

```
@CanIgnoreReturnValue
public MediaItem.Builder setLiveConfiguration(MediaItem.LiveConfiguration liveConfiguration)
```

Sets the `https://developer.android.com/reference/androidx/media3/common/MediaItem.LiveConfiguration`. Defaults to `https://developer.android.com/reference/androidx/media3/common/MediaItem.LiveConfiguration#UNSET()`.

### setLiveMaxOffsetMs

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setLiveMaxOffsetMs](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setLiveMaxOffsetMs(long))(long liveMaxOffsetMs)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setLiveConfiguration(androidx.media3.common.MediaItem.LiveConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.LiveConfiguration.Builder#setMaxOffsetMs(long)`.

### setLiveMaxPlaybackSpeed

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setLiveMaxPlaybackSpeed](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setLiveMaxPlaybackSpeed(float))(float maxPlaybackSpeed)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setLiveConfiguration(androidx.media3.common.MediaItem.LiveConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.LiveConfiguration.Builder#setMaxPlaybackSpeed(float)`.

### setLiveMinOffsetMs

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setLiveMinOffsetMs](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setLiveMinOffsetMs(long))(long liveMinOffsetMs)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setLiveConfiguration(androidx.media3.common.MediaItem.LiveConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.LiveConfiguration.Builder#setMinOffsetMs(long)`.

### setLiveMinPlaybackSpeed

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setLiveMinPlaybackSpeed](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setLiveMinPlaybackSpeed(float))(float minPlaybackSpeed)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setLiveConfiguration(androidx.media3.common.MediaItem.LiveConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.LiveConfiguration.Builder#setMinPlaybackSpeed(float)`.

### setLiveTargetOffsetMs

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setLiveTargetOffsetMs](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setLiveTargetOffsetMs(long))(long liveTargetOffsetMs)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setLiveConfiguration(androidx.media3.common.MediaItem.LiveConfiguration)` and `https://developer.android.com/reference/androidx/media3/common/MediaItem.LiveConfiguration.Builder#setTargetOffsetMs(long)`.

### setMediaId

```
@CanIgnoreReturnValue
public MediaItem.Builder setMediaId(String mediaId)
```

Sets the optional media ID which identifies the media item.

By default `https://developer.android.com/reference/androidx/media3/common/MediaItem#DEFAULT_MEDIA_ID()` is used.

### setMediaMetadata

```
@CanIgnoreReturnValue
public MediaItem.Builder setMediaMetadata(MediaMetadata mediaMetadata)
```

Sets the media metadata.

### setMimeType

```
@CanIgnoreReturnValue
public MediaItem.Builder setMimeType(@Nullable String mimeType)
```

Sets the optional MIME type.

The MIME type may be used as a hint for inferring the type of the media item.

This method should only be called if `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setUri(java.lang.String)` is passed a non-null value.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html mimeType` | The MIME type. |

### setRequestMetadata

```
@CanIgnoreReturnValue
public MediaItem.Builder setRequestMetadata(MediaItem.RequestMetadata requestMetadata)
```

Sets the request metadata.

### setStreamKeys

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder setStreamKeys(@Nullable List<StreamKey> streamKeys)
```

Sets the optional stream keys by which the manifest is filtered (only used for adaptive streams).

`null` or an empty `https://developer.android.com/reference/java/util/List.html` can be used for a reset.

If `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setUri(java.lang.String)` is passed a non-null `uri`, the stream keys are used to create a `https://developer.android.com/reference/androidx/media3/common/MediaItem.LocalConfiguration` object. Otherwise they will be ignored.

### setSubtitleConfigurations

```
@CanIgnoreReturnValue
public MediaItem.Builder setSubtitleConfigurations(
    List<MediaItem.SubtitleConfiguration> subtitleConfigurations
)
```

Sets the optional subtitles.

This method should only be called if `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setUri(java.lang.String)` is passed a non-null value.

### setSubtitles

```
@CanIgnoreReturnValue
@UnstableApi
public MediaItem.Builder [setSubtitles](https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setSubtitles(java.util.List<androidx.media3.common.MediaItem.Subtitle>))(@Nullable List<MediaItem.Subtitle> subtitles)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setSubtitleConfigurations(java.util.List<androidx.media3.common.MediaItem.SubtitleConfiguration>)` instead. Note that `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setSubtitleConfigurations(java.util.List<androidx.media3.common.MediaItem.SubtitleConfiguration>)` doesn't accept null, use an empty list to clear the contents.

### setTag

```
@CanIgnoreReturnValue
public MediaItem.Builder setTag(@Nullable Object tag)
```

Sets the optional tag for custom attributes. The tag for the media source which will be published in the `androidx.media3.common.Timeline` of the source as `
androidx.media3.common.Timeline.Window#tag`.

This method should only be called if `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#setUri(java.lang.String)` is passed a non-null value.

### setUri

```
@CanIgnoreReturnValue
public MediaItem.Builder setUri(@Nullable String uri)
```

Sets the optional URI.

If `uri` is null or unset then no `https://developer.android.com/reference/androidx/media3/common/MediaItem.LocalConfiguration` object is created during `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#build()` and no other `Builder` methods that would populate `https://developer.android.com/reference/androidx/media3/common/MediaItem#localConfiguration()` should be called.

### setUri

```
@CanIgnoreReturnValue
public MediaItem.Builder setUri(@Nullable Uri uri)
```

Sets the optional URI.

If `uri` is null or unset then no `https://developer.android.com/reference/androidx/media3/common/MediaItem.LocalConfiguration` object is created during `https://developer.android.com/reference/androidx/media3/common/MediaItem.Builder#build()` and no other `Builder` methods that would populate `https://developer.android.com/reference/androidx/media3/common/MediaItem#localConfiguration()` should be called.