# MediaItem.LocalConfiguration

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

*** ** * ** ***

<br />

```
public final class MediaItem.LocalConfiguration
```

<br />

*** ** * ** ***

Properties for local playback.

## Summary

| ### Public fields |
|---|---|
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/MediaItem.AdsConfiguration` | `https://developer.android.com/reference/androidx/media3/common/MediaItem.LocalConfiguration#adsConfiguration()` Optional ads configuration. |
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/common/MediaItem.LocalConfiguration#customCacheKey()` Optional custom cache key (only used for progressive streams). |
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration` | `https://developer.android.com/reference/androidx/media3/common/MediaItem.LocalConfiguration#drmConfiguration()` Optional `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration` for the media. |
| `final long` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/common/MediaItem.LocalConfiguration#imageDurationMs()` Duration for image assets in milliseconds. |
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/media3/common/MediaItem.LocalConfiguration#mimeType()` The optional MIME type of the item, or `null` if unspecified. |
| `final https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/StreamKey>` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/common/MediaItem.LocalConfiguration#streamKeys()` Optional stream keys by which the manifest is filtered. |
| `final https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/ImmutableList.html<https://developer.android.com/reference/androidx/media3/common/MediaItem.SubtitleConfiguration>` | `https://developer.android.com/reference/androidx/media3/common/MediaItem.LocalConfiguration#subtitleConfigurations()` Optional subtitles to be sideloaded. |
| `final https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/MediaItem.Subtitle>` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/common/MediaItem.LocalConfiguration#subtitles()` **This field is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.LocalConfiguration#subtitleConfigurations()` instead. <br /> |
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/Object.html` | `https://developer.android.com/reference/androidx/media3/common/MediaItem.LocalConfiguration#tag()` Optional tag for custom attributes. |
| `final https://developer.android.com/reference/android/net/Uri.html` | `https://developer.android.com/reference/androidx/media3/common/MediaItem.LocalConfiguration#uri()` The `https://developer.android.com/reference/android/net/Uri.html`. |

| ### Public methods |
|---|---|
| `boolean` | `https://developer.android.com/reference/androidx/media3/common/MediaItem.LocalConfiguration#equals(java.lang.Object)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/Object.html obj)` |
| `static https://developer.android.com/reference/androidx/media3/common/MediaItem.LocalConfiguration` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/common/MediaItem.LocalConfiguration#fromBundle(android.os.Bundle)(https://developer.android.com/reference/android/os/Bundle.html bundle)` Restores a `LocalConfiguration` from a `https://developer.android.com/reference/android/os/Bundle.html`. |
| `int` | `https://developer.android.com/reference/androidx/media3/common/MediaItem.LocalConfiguration#hashCode()()` |
| `https://developer.android.com/reference/android/os/Bundle.html` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/common/MediaItem.LocalConfiguration#toBundle()()` Returns a `https://developer.android.com/reference/android/os/Bundle.html` representing the information stored in this object. |

## Public fields

### adsConfiguration

```
public final @Nullable MediaItem.AdsConfiguration adsConfiguration
```

Optional ads configuration.

### customCacheKey

```
@UnstableApi
public final @Nullable String customCacheKey
```

Optional custom cache key (only used for progressive streams).

### drmConfiguration

```
public final @Nullable MediaItem.DrmConfiguration drmConfiguration
```

Optional `https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration` for the media.

### imageDurationMs

```
@UnstableApi
public final long imageDurationMs
```

Duration for image assets in milliseconds.

### mimeType

```
public final @Nullable String mimeType
```

The optional MIME type of the item, or `null` if unspecified.

The MIME type can be used to disambiguate media items that have a URI which does not allow to infer the actual media type.

### streamKeys

```
@UnstableApi
public final List<StreamKey> streamKeys
```

Optional stream keys by which the manifest is filtered.

### subtitleConfigurations

```
public final ImmutableList<MediaItem.SubtitleConfiguration> subtitleConfigurations
```

Optional subtitles to be sideloaded.

### subtitles

```
@UnstableApi
public final List<MediaItem.Subtitle> subtitles
```

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

### tag

```
public final @Nullable Object tag
```

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`.

### uri

```
public final Uri uri
```

The `https://developer.android.com/reference/android/net/Uri.html`.

## Public methods

### equals

```
public boolean equals(@Nullable Object obj)
```

### fromBundle

```
@UnstableApi
public static MediaItem.LocalConfiguration fromBundle(Bundle bundle)
```

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

### hashCode

```
public int hashCode()
```

### toBundle

```
@UnstableApi
public Bundle toBundle()
```

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/androidx/media3/common/MediaItem.LocalConfiguration#tag()` field. The `https://developer.android.com/reference/androidx/media3/common/MediaItem.LocalConfiguration#tag()` of an instance restored from such a bundle by `https://developer.android.com/reference/androidx/media3/common/MediaItem.LocalConfiguration#fromBundle(android.os.Bundle)` will be `null`.