Package com.google.android.exoplayer2

## Class MediaMetadata

- java.lang.Object
- - com.google.android.exoplayer2.MediaMetadata

- All Implemented Interfaces:
    `Bundleable`

      public final class MediaMetadata
      extends Object
      implements Bundleable

  Metadata of a `MediaItem`, playlist, or a combination of multiple sources of `Metadata`.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `MediaMetadata.Builder` | A builder for `MediaMetadata` instances.
    `static interface` | `MediaMetadata.FolderType` | The folder type of the media item.

    - ### Nested classes/interfaces inherited from interface com.google.android.exoplayer2.Bundleable

      `Bundleable.Creator<T extends Bundleable>`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `CharSequence` | `albumArtist` | Optional album artist.
    `CharSequence` | `albumTitle` | Optional album title.
    `CharSequence` | `artist` | Optional artist.
    `byte[]` | `artworkData` | Optional artwork data as a compressed byte array.
    `Uri` | `artworkUri` | Optional artwork `Uri`.
    `static Bundleable.Creator<MediaMetadata>` | `CREATOR` | Object that can restore `MediaMetadata` from a `Bundle`.
    `CharSequence` | `description` | Optional description.
    `CharSequence` | `displayTitle` | Optional display title.
    `static MediaMetadata` | `EMPTY` | Empty `MediaMetadata`.
    `Bundle` | `extras` | Optional extras `Bundle`.
    `static int` | `FOLDER_TYPE_ALBUMS` | Type for a folder containing media categorized by album.
    `static int` | `FOLDER_TYPE_ARTISTS` | Type for a folder containing media categorized by artist.
    `static int` | `FOLDER_TYPE_GENRES` | Type for a folder containing media categorized by genre.
    `static int` | `FOLDER_TYPE_MIXED` | Type for a folder containing media of mixed types.
    `static int` | `FOLDER_TYPE_PLAYLISTS` | Type for a folder containing a playlist.
    `static int` | `FOLDER_TYPE_TITLES` | Type for a folder containing only playable media.
    `static int` | `FOLDER_TYPE_YEARS` | Type for a folder containing media categorized by year.
    `Integer` | `folderType` | Optional `MediaMetadata.FolderType`.
    `Boolean` | `isPlayable` | Optional boolean for media playability.
    `Uri` | `mediaUri` | Optional media `Uri`.
    `Rating` | `overallRating` | Optional overall `Rating`.
    `CharSequence` | `subtitle` | Optional subtitle.
    `CharSequence` | `title` | Optional title.
    `Integer` | `totalTrackCount` | Optional total number of tracks.
    `Integer` | `trackNumber` | Optional track number.
    `Rating` | `userRating` | Optional user `Rating`.
    `Integer` | `year` | Optional year.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `MediaMetadata.Builder` | `buildUpon()` | Returns a new `MediaMetadata.Builder` instance with the current `MediaMetadata` fields.
    `boolean` | `equals​(Object obj)` |
    `int` | `hashCode()` |
    `Bundle` | `toBundle()` | Returns a `Bundle` representing the information stored in this object.

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### FOLDER_TYPE_MIXED

          public static final int FOLDER_TYPE_MIXED

      Type for a folder containing media of mixed types.
      See Also:
        Constant Field Values

    - #### FOLDER_TYPE_TITLES

          public static final int FOLDER_TYPE_TITLES

      Type for a folder containing only playable media.
      See Also:
        Constant Field Values

    - #### FOLDER_TYPE_ALBUMS

          public static final int FOLDER_TYPE_ALBUMS

      Type for a folder containing media categorized by album.
      See Also:
        Constant Field Values

    - #### FOLDER_TYPE_ARTISTS

          public static final int FOLDER_TYPE_ARTISTS

      Type for a folder containing media categorized by artist.
      See Also:
        Constant Field Values

    - #### FOLDER_TYPE_GENRES

          public static final int FOLDER_TYPE_GENRES

      Type for a folder containing media categorized by genre.
      See Also:
        Constant Field Values

    - #### FOLDER_TYPE_PLAYLISTS

          public static final int FOLDER_TYPE_PLAYLISTS

      Type for a folder containing a playlist.
      See Also:
        Constant Field Values

    - #### FOLDER_TYPE_YEARS

          public static final int FOLDER_TYPE_YEARS

      Type for a folder containing media categorized by year.
      See Also:
        Constant Field Values

    - #### EMPTY

          public static final MediaMetadata EMPTY

      Empty `MediaMetadata`.

    - #### title

          @Nullable
          public final CharSequence title

      Optional title.

    - #### artist

          @Nullable
          public final CharSequence artist

      Optional artist.

    - #### albumTitle

          @Nullable
          public final CharSequence albumTitle

      Optional album title.

    - #### albumArtist

          @Nullable
          public final CharSequence albumArtist

      Optional album artist.

    - #### displayTitle

          @Nullable
          public final CharSequence displayTitle

      Optional display title.

    - #### subtitle

          @Nullable
          public final CharSequence subtitle

      Optional subtitle.

      This is the secondary title of the media, unrelated to closed captions.

    - #### description

          @Nullable
          public final CharSequence description

      Optional description.

    - #### mediaUri

          @Nullable
          public final Uri mediaUri

      Optional media `Uri`.

    - #### userRating

          @Nullable
          public final Rating userRating

      Optional user `Rating`.

    - #### overallRating

          @Nullable
          public final Rating overallRating

      Optional overall `Rating`.

    - #### artworkData

          @Nullable
          public final byte[] artworkData

      Optional artwork data as a compressed byte array.

    - #### artworkUri

          @Nullable
          public final Uri artworkUri

      Optional artwork `Uri`.

    - #### trackNumber

          @Nullable
          public final Integer trackNumber

      Optional track number.

    - #### totalTrackCount

          @Nullable
          public final Integer totalTrackCount

      Optional total number of tracks.

    - #### folderType

          @Nullable
          @FolderType
          public final Integer folderType

      Optional `MediaMetadata.FolderType`.

    - #### isPlayable

          @Nullable
          public final Boolean isPlayable

      Optional boolean for media playability.

    - #### year

          @Nullable
          public final Integer year

      Optional year.

    - #### extras

          @Nullable
          public final Bundle extras

      Optional extras `Bundle`.

      Given the complexities of checking the equality of two `Bundle`s, this is not considered in the `equals(Object)` or `hashCode()`.

    - #### CREATOR

          public static final Bundleable.Creator<MediaMetadata> CREATOR

      Object that can restore `MediaMetadata` from a `Bundle`.

  - ### Method Detail

    - #### buildUpon

          public MediaMetadata.Builder buildUpon()

      Returns a new `MediaMetadata.Builder` instance with the current `MediaMetadata` fields.

    - #### equals

          public boolean equals​(@Nullable
                                Object obj)

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### toBundle

          public Bundle toBundle()

      Description copied from interface: `Bundleable`
      Returns a `Bundle` representing the information stored in this object.
      Specified by:
        `toBundle` in interface `Bundleable`