Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/android/media/MediaMetadata.Builder#pubctors) \| [Methods](https://developer.android.com/reference/android/media/MediaMetadata.Builder#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/media/MediaMetadata.Builder#inhmethods)

# MediaMetadata.Builder

*** ** * ** ***

[Kotlin](https://developer.android.com/reference/kotlin/android/media/MediaMetadata.Builder "View this page in Kotlin") \|Java


`
public
static
final

class
MediaMetadata.Builder
`


`

extends https://developer.android.com/reference/java/lang/Object


`

`


`

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.media.MediaMetadata.Builder |

<br />

*** ** * ** ***

Use to build MediaMetadata objects. The system defined metadata keys must
use the appropriate data type.

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/media/MediaMetadata.Builder#Builder()() ` Create an empty Builder. |
| ` https://developer.android.com/reference/android/media/MediaMetadata.Builder#Builder(android.media.MediaMetadata)(https://developer.android.com/reference/android/media/MediaMetadata source) ` Create a Builder using a `https://developer.android.com/reference/android/media/MediaMetadata` instance to set the initial values. |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/android/media/MediaMetadata` | ` https://developer.android.com/reference/android/media/MediaMetadata.Builder#build()() ` Creates a `https://developer.android.com/reference/android/media/MediaMetadata` instance with the specified fields. |
| ` https://developer.android.com/reference/android/media/MediaMetadata.Builder` | ` https://developer.android.com/reference/android/media/MediaMetadata.Builder#putBitmap(java.lang.String,%20android.graphics.Bitmap)(https://developer.android.com/reference/java/lang/String key, https://developer.android.com/reference/android/graphics/Bitmap value) ` Put a `https://developer.android.com/reference/android/graphics/Bitmap` into the metadata. |
| ` https://developer.android.com/reference/android/media/MediaMetadata.Builder` | ` https://developer.android.com/reference/android/media/MediaMetadata.Builder#putLong(java.lang.String,%20long)(https://developer.android.com/reference/java/lang/String key, long value) ` Put a long value into the metadata. |
| ` https://developer.android.com/reference/android/media/MediaMetadata.Builder` | ` https://developer.android.com/reference/android/media/MediaMetadata.Builder#putRating(java.lang.String,%20android.media.Rating)(https://developer.android.com/reference/java/lang/String key, https://developer.android.com/reference/android/media/Rating value) ` Put a `https://developer.android.com/reference/android/media/Rating` into the metadata. |
| ` https://developer.android.com/reference/android/media/MediaMetadata.Builder` | ` https://developer.android.com/reference/android/media/MediaMetadata.Builder#putString(java.lang.String,%20java.lang.String)(https://developer.android.com/reference/java/lang/String key, https://developer.android.com/reference/java/lang/String value) ` Put a String value into the metadata. |
| ` https://developer.android.com/reference/android/media/MediaMetadata.Builder` | ` https://developer.android.com/reference/android/media/MediaMetadata.Builder#putText(java.lang.String,%20java.lang.CharSequence)(https://developer.android.com/reference/java/lang/String key, https://developer.android.com/reference/java/lang/CharSequence value) ` Put a CharSequence value into the metadata. |
| ` https://developer.android.com/reference/android/media/MediaMetadata.Builder` | ` https://developer.android.com/reference/android/media/MediaMetadata.Builder#setBitmapDimensionLimit(int)(int bitmapDimensionLimit) ` Sets the maximum width/height (in pixels) for the bitmaps in the metadata. |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/java/lang/Object ` |---|---| | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Object#clone()() ` Creates and returns a copy of this object. | | ` boolean` | ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. | | ` void` | ` https://developer.android.com/reference/java/lang/Object#finalize()() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. | | ` final https://developer.android.com/reference/java/lang/Class<?>` | ` https://developer.android.com/reference/java/lang/Object#getClass()() ` Returns the runtime class of this `Object`. | | ` int` | ` https://developer.android.com/reference/java/lang/Object#hashCode()() ` Returns a hash code value for the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notify()() ` Wakes up a single thread that is waiting on this object's monitor. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notifyAll()() ` Wakes up all threads that are waiting on this object's monitor. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Object#toString()() ` Returns a string representation of the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait()() ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*. | ||

## Public constructors

### Builder

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Builder ()
```

Create an empty Builder. Any field that should be included in the
`https://developer.android.com/reference/android/media/MediaMetadata` must be added.

<br />

### Builder

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Builder (MediaMetadata source)
```

Create a Builder using a `https://developer.android.com/reference/android/media/MediaMetadata` instance to set the
initial values. All fields in the source metadata will be included in
the new metadata. Fields can be overwritten by adding the same key.

<br />

## Public methods

### build

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public MediaMetadata build ()
```

Creates a `https://developer.android.com/reference/android/media/MediaMetadata` instance with the specified fields.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/MediaMetadata` | The new MediaMetadata instance <br /> |

### putBitmap

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public MediaMetadata.Builder putBitmap (String key, 
                Bitmap value)
```

Put a `https://developer.android.com/reference/android/graphics/Bitmap` into the metadata. Custom keys may be used, but
if the METADATA_KEYs defined in this class are used they may only be
one of the following:

- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ART`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ALBUM_ART`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DISPLAY_ICON`


Large bitmaps may be scaled down by the system with
`https://developer.android.com/reference/android/media/MediaMetadata.Builder#setBitmapDimensionLimit(int)` when `https://developer.android.com/reference/android/media/session/MediaSession#setMetadata(android.media.MediaMetadata)`
is called. To pass full resolution images `https://developer.android.com/reference/android/net/Uri` should be used with
`https://developer.android.com/reference/android/media/MediaMetadata.Builder#putString(java.lang.String,%20java.lang.String)`.

<br />

| Parameters ||
|---|---|
| `key` | `String`: The key for referencing this value. Value is one of the following: - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ART` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ALBUM_ART` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DISPLAY_ICON` |
| `value` | `Bitmap`: The Bitmap to store. This value may be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/MediaMetadata.Builder` | The Builder to allow chaining <br /> |

### putLong

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public MediaMetadata.Builder putLong (String key, 
                long value)
```

Put a long value into the metadata. Custom keys may be used, but if
the METADATA_KEYs defined in this class are used they may only be one
of the following:

- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DURATION`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_TRACK_NUMBER`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_NUM_TRACKS`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DISC_NUMBER`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_YEAR`

<br />

<br />

| Parameters ||
|---|---|
| `key` | `String`: The key for referencing this value. Value is one of the following: - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DURATION` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_YEAR` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_TRACK_NUMBER` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_NUM_TRACKS` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DISC_NUMBER` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_BT_FOLDER_TYPE` |
| `value` | `long`: The long value to store <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/MediaMetadata.Builder` | The Builder to allow chaining <br /> |

### putRating

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public MediaMetadata.Builder putRating (String key, 
                Rating value)
```

Put a `https://developer.android.com/reference/android/media/Rating` into the metadata. Custom keys may be used, but
if the METADATA_KEYs defined in this class are used they may only be
one of the following:

- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_RATING`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_USER_RATING`

<br />

<br />

| Parameters ||
|---|---|
| `key` | `String`: The key for referencing this value. Value is one of the following: - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_USER_RATING` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_RATING` |
| `value` | `Rating`: The Rating value to store. This value may be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/MediaMetadata.Builder` | The Builder to allow chaining <br /> |

### putString

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public MediaMetadata.Builder putString (String key, 
                String value)
```

Put a String value into the metadata. Custom keys may be used, but if
the METADATA_KEYs defined in this class are used they may only be one
of the following:

- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_TITLE`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ARTIST`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ALBUM`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_AUTHOR`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_WRITER`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_COMPOSER`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DATE`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_GENRE`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ALBUM_ARTIST`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ART_URI`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ALBUM_ART_URI`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DISPLAY_TITLE`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DISPLAY_SUBTITLE`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DISPLAY_DESCRIPTION`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DISPLAY_ICON_URI`


Uris for artwork should use the content:// style and support
`https://developer.android.com/reference/android/content/ContentResolver#EXTRA_SIZE` for retrieving scaled artwork
through `https://developer.android.com/reference/android/content/ContentResolver#openTypedAssetFileDescriptor(android.net.Uri,%20java.lang.String,%20android.os.Bundle)`.

<br />

| Parameters ||
|---|---|
| `key` | `String`: The key for referencing this value. Value is one of the following: - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_TITLE` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ARTIST` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ALBUM` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_AUTHOR` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_WRITER` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_COMPOSER` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_COMPILATION` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DATE` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_GENRE` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ALBUM_ARTIST` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ART_URI` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ALBUM_ART_URI` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DISPLAY_TITLE` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DISPLAY_SUBTITLE` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DISPLAY_DESCRIPTION` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DISPLAY_ICON_URI` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_MEDIA_ID` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_MEDIA_URI` |
| `value` | `String`: The String value to store. This value may be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/MediaMetadata.Builder` | The Builder to allow chaining <br /> |

### putText

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public MediaMetadata.Builder putText (String key, 
                CharSequence value)
```

Put a CharSequence value into the metadata. Custom keys may be used,
but if the METADATA_KEYs defined in this class are used they may only
be one of the following:

- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_TITLE`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ARTIST`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ALBUM`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_AUTHOR`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_WRITER`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_COMPOSER`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DATE`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_GENRE`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ALBUM_ARTIST`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ART_URI`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ALBUM_ART_URI`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DISPLAY_TITLE`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DISPLAY_SUBTITLE`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DISPLAY_DESCRIPTION`
- `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DISPLAY_ICON_URI`

<br />

<br />

| Parameters ||
|---|---|
| `key` | `String`: The key for referencing this value. Value is one of the following: - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_TITLE` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ARTIST` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ALBUM` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_AUTHOR` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_WRITER` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_COMPOSER` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_COMPILATION` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DATE` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_GENRE` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ALBUM_ARTIST` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ART_URI` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_ALBUM_ART_URI` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DISPLAY_TITLE` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DISPLAY_SUBTITLE` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DISPLAY_DESCRIPTION` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_DISPLAY_ICON_URI` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_MEDIA_ID` - `https://developer.android.com/reference/android/media/MediaMetadata#METADATA_KEY_MEDIA_URI` |
| `value` | `CharSequence`: The CharSequence value to store. This value may be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/MediaMetadata.Builder` | The Builder to allow chaining <br /> |

### setBitmapDimensionLimit

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public MediaMetadata.Builder setBitmapDimensionLimit (int bitmapDimensionLimit)
```

Sets the maximum width/height (in pixels) for the bitmaps in the metadata.
Bitmaps will be replaced with scaled down copies if their width (or height) is
larger than `bitmapDimensionLimit`.


In order to unset the limit, pass `https://developer.android.com/reference/java/lang/Integer#MAX_VALUE` as
`bitmapDimensionLimit`.

<br />

| Parameters ||
|---|---|
| `bitmapDimensionLimit` | `int`: The maximum width/height (in pixels) for bitmaps contained in the metadata. Non-positive values are ignored. Pass `https://developer.android.com/reference/java/lang/Integer#MAX_VALUE` to unset the limit. Value is 1 or greater <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/MediaMetadata.Builder` | This value cannot be `null`. <br /> |