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

# Builder

*** ** * ** ***

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

```
class Builder
```

|---|---|
| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html) ||
| ↳ | [android.media.MediaMetadata.Builder](https://developer.android.com/reference/kotlin/android/media/MediaMetadata.Builder#) |

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

## Summary

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

| Public methods ||
|---|---|
| [MediaMetadata](https://developer.android.com/reference/kotlin/android/media/MediaMetadata)! | `https://developer.android.com/reference/kotlin/android/media/MediaMetadata.Builder#build()()` Creates a `https://developer.android.com/reference/kotlin/android/media/MediaMetadata` instance with the specified fields. |
| [MediaMetadata.Builder](https://developer.android.com/reference/kotlin/android/media/MediaMetadata.Builder#)! | `https://developer.android.com/reference/kotlin/android/media/MediaMetadata.Builder#putBitmap(kotlin.String,%20android.graphics.Bitmap)(key: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html!, value: https://developer.android.com/reference/kotlin/android/graphics/Bitmap.html#?)` Put a `https://developer.android.com/reference/kotlin/android/graphics/Bitmap.html#` into the metadata. |
| [MediaMetadata.Builder](https://developer.android.com/reference/kotlin/android/media/MediaMetadata.Builder#)! | `https://developer.android.com/reference/kotlin/android/media/MediaMetadata.Builder#putLong(kotlin.String,%20kotlin.Long)(key: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html!, value: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)` Put a long value into the metadata. |
| [MediaMetadata.Builder](https://developer.android.com/reference/kotlin/android/media/MediaMetadata.Builder#)! | `https://developer.android.com/reference/kotlin/android/media/MediaMetadata.Builder#putRating(kotlin.String,%20android.media.Rating)(key: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html!, value: https://developer.android.com/reference/kotlin/android/media/Rating?)` Put a `https://developer.android.com/reference/kotlin/android/media/Rating` into the metadata. |
| [MediaMetadata.Builder](https://developer.android.com/reference/kotlin/android/media/MediaMetadata.Builder#)! | `https://developer.android.com/reference/kotlin/android/media/MediaMetadata.Builder#putString(kotlin.String,%20kotlin.String)(key: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html!, value: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html?)` Put a String value into the metadata. |
| [MediaMetadata.Builder](https://developer.android.com/reference/kotlin/android/media/MediaMetadata.Builder#)! | `https://developer.android.com/reference/kotlin/android/media/MediaMetadata.Builder#putText(kotlin.String,%20kotlin.CharSequence)(key: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html!, value: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-char-sequence/index.html?)` Put a CharSequence value into the metadata. |
| [MediaMetadata.Builder](https://developer.android.com/reference/kotlin/android/media/MediaMetadata.Builder#) | `https://developer.android.com/reference/kotlin/android/media/MediaMetadata.Builder#setBitmapDimensionLimit(kotlin.Int)(bitmapDimensionLimit: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` Sets the maximum width/height (in pixels) for the bitmaps in the metadata. |

## Public constructors

### Builder

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

```
Builder()
```

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

### Builder

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

```
Builder(source: MediaMetadata!)
```

Create a Builder using a `https://developer.android.com/reference/kotlin/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.

| Parameters ||
|---|---|
| `source` | [MediaMetadata](https://developer.android.com/reference/kotlin/android/media/MediaMetadata)!: |

## Public methods

### build

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

```
fun build(): MediaMetadata!
```

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

| Return ||
|---|---|
| `https://developer.android.com/reference/kotlin/android/media/MediaMetadata!` | The new MediaMetadata instance |

### putBitmap

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

```
fun putBitmap(
    key: String!, 
    value: Bitmap?
): MediaMetadata.Builder!
```

Put a `https://developer.android.com/reference/kotlin/android/graphics/Bitmap.html#` 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/kotlin/android/media/MediaMetadata#METADATA_KEY_ART:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ALBUM_ART:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DISPLAY_ICON:kotlin.String`

<br />

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

| Parameters ||
|---|---|
| `key` | [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)!: The key for referencing this value. Value is one of the following: - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ART:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ALBUM_ART:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DISPLAY_ICON:kotlin.String` |
| `value` | [Bitmap](https://developer.android.com/reference/kotlin/android/graphics/Bitmap.html#)?: The Bitmap to store. This value may be `null`. |

| Return ||
|---|---|
| `https://developer.android.com/reference/kotlin/android/media/MediaMetadata.Builder#!` | The Builder to allow chaining |

### putLong

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

```
fun putLong(
    key: String!, 
    value: Long
): MediaMetadata.Builder!
```

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/kotlin/android/media/MediaMetadata#METADATA_KEY_DURATION:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_TRACK_NUMBER:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_NUM_TRACKS:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DISC_NUMBER:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_YEAR:kotlin.String`

<br />

| Parameters ||
|---|---|
| `key` | [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)!: The key for referencing this value. Value is one of the following: - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DURATION:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_YEAR:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_TRACK_NUMBER:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_NUM_TRACKS:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DISC_NUMBER:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_BT_FOLDER_TYPE:kotlin.String` |
| `value` | [Long](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html): The long value to store |

| Return ||
|---|---|
| `https://developer.android.com/reference/kotlin/android/media/MediaMetadata.Builder#!` | The Builder to allow chaining |

### putRating

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

```
fun putRating(
    key: String!, 
    value: Rating?
): MediaMetadata.Builder!
```

Put a `https://developer.android.com/reference/kotlin/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/kotlin/android/media/MediaMetadata#METADATA_KEY_RATING:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_USER_RATING:kotlin.String`

<br />

| Parameters ||
|---|---|
| `key` | [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)!: The key for referencing this value. Value is one of the following: - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_USER_RATING:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_RATING:kotlin.String` |
| `value` | [Rating](https://developer.android.com/reference/kotlin/android/media/Rating)?: The Rating value to store. This value may be `null`. |

| Return ||
|---|---|
| `https://developer.android.com/reference/kotlin/android/media/MediaMetadata.Builder#!` | The Builder to allow chaining |

### putString

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

```
fun putString(
    key: String!, 
    value: String?
): MediaMetadata.Builder!
```

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/kotlin/android/media/MediaMetadata#METADATA_KEY_TITLE:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ARTIST:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ALBUM:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_AUTHOR:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_WRITER:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_COMPOSER:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DATE:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_GENRE:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ALBUM_ARTIST:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ART_URI:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ALBUM_ART_URI:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DISPLAY_TITLE:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DISPLAY_SUBTITLE:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DISPLAY_DESCRIPTION:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DISPLAY_ICON_URI:kotlin.String`

<br />

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

| Parameters ||
|---|---|
| `key` | [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)!: The key for referencing this value. Value is one of the following: - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_TITLE:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ARTIST:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ALBUM:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_AUTHOR:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_WRITER:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_COMPOSER:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_COMPILATION:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DATE:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_GENRE:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ALBUM_ARTIST:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ART_URI:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ALBUM_ART_URI:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DISPLAY_TITLE:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DISPLAY_SUBTITLE:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DISPLAY_DESCRIPTION:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DISPLAY_ICON_URI:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_MEDIA_ID:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_MEDIA_URI:kotlin.String` |
| `value` | [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)?: The String value to store. This value may be `null`. |

| Return ||
|---|---|
| `https://developer.android.com/reference/kotlin/android/media/MediaMetadata.Builder#!` | The Builder to allow chaining |

### putText

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

```
fun putText(
    key: String!, 
    value: CharSequence?
): MediaMetadata.Builder!
```

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/kotlin/android/media/MediaMetadata#METADATA_KEY_TITLE:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ARTIST:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ALBUM:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_AUTHOR:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_WRITER:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_COMPOSER:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DATE:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_GENRE:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ALBUM_ARTIST:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ART_URI:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ALBUM_ART_URI:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DISPLAY_TITLE:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DISPLAY_SUBTITLE:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DISPLAY_DESCRIPTION:kotlin.String`
- `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DISPLAY_ICON_URI:kotlin.String`

<br />

| Parameters ||
|---|---|
| `key` | [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)!: The key for referencing this value. Value is one of the following: - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_TITLE:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ARTIST:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ALBUM:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_AUTHOR:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_WRITER:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_COMPOSER:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_COMPILATION:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DATE:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_GENRE:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ALBUM_ARTIST:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ART_URI:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_ALBUM_ART_URI:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DISPLAY_TITLE:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DISPLAY_SUBTITLE:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DISPLAY_DESCRIPTION:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_DISPLAY_ICON_URI:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_MEDIA_ID:kotlin.String` - `https://developer.android.com/reference/kotlin/android/media/MediaMetadata#METADATA_KEY_MEDIA_URI:kotlin.String` |
| `value` | [CharSequence](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-char-sequence/index.html)?: The CharSequence value to store. This value may be `null`. |

| Return ||
|---|---|
| `https://developer.android.com/reference/kotlin/android/media/MediaMetadata.Builder#!` | The Builder to allow chaining |

### setBitmapDimensionLimit

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

```
fun setBitmapDimensionLimit(bitmapDimensionLimit: Int): MediaMetadata.Builder
```

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/kotlin/java/lang/Integer.html#MAX_VALUE:kotlin.Int` as `bitmapDimensionLimit`.

| Parameters ||
|---|---|
| `bitmapDimensionLimit` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): The maximum width/height (in pixels) for bitmaps contained in the metadata. Non-positive values are ignored. Pass `https://developer.android.com/reference/kotlin/java/lang/Integer.html#MAX_VALUE:kotlin.Int` to unset the limit. Value is 1 or greater |

| Return ||
|---|---|
| `https://developer.android.com/reference/kotlin/android/media/MediaMetadata.Builder#` | This value cannot be `null`. |