Container class for media metadata. Metadata has a media type, an optional list of images, and a collection of metadata fields. Keys for common metadata fields are predefined as constants, but the application is free to define and use additional fields of its own. Information about the different media types and their associated metadata can be found in the Media Playback Messages documentation.
The values of the predefined fields have predefined types. For example, a track number is
anint
,a creation date is aString
containing an ISO-8601
representation of a date and time, and a section duration is an integer in milliseconds.
Attempting to store a value of an incorrect type in a field results in aIllegalArgumentException
.
The complete list of predefined fields is as follows:
Note that the Cast protocol limits which metadata fields can be used for a given media type. When a MediaMetadata object is serialized to JSON for delivery to a Cast receiver, any predefined fields which are not supported for a given media type are not included in the serialized form, but any application-defined fields are always included.
Constant Summary
String | KEY_ALBUM_ARTIST | String key: Album artist. |
String | KEY_ALBUM_TITLE | String key: Album title. |
String | KEY_ARTIST | String key: Artist. |
String | KEY_BOOK_TITLE | String key: Audiobook title. |
String | KEY_BROADCAST_DATE | String key: Broadcast date. |
String | KEY_CHAPTER_NUMBER | String key: Chapter number. |
String | KEY_CHAPTER_TITLE | String key: Chapter title. |
String | KEY_COMPOSER | String key: Composer. |
String | KEY_CREATION_DATE | String key: Creation date. |
String | KEY_DISC_NUMBER | Integer key: Disc number. |
String | KEY_EPISODE_NUMBER | Integer key: Episode number. |
String | KEY_HEIGHT | Integer key: Height. |
String | KEY_LOCATION_LATITUDE | Double key: Location latitude. |
String | KEY_LOCATION_LONGITUDE | Double key: Location longitude. |
String | KEY_LOCATION_NAME | String key: Location name. |
String | KEY_QUEUE_ITEM_ID | Int key: Queue item ID. |
String | KEY_RELEASE_DATE | String key: Release date. |
String | KEY_SEASON_NUMBER | Integer key: Season number. |
String | KEY_SECTION_DURATION | Time key in milliseconds: section duration. |
String | KEY_SECTION_START_ABSOLUTE_TIME | Time key in milliseconds: section start absolute time. |
String | KEY_SECTION_START_TIME_IN_CONTAINER | Time key in milliseconds: section start time in the container. |
String | KEY_SECTION_START_TIME_IN_MEDIA | Time key in milliseconds: section start time in media item. |
String | KEY_SERIES_TITLE | String key: Series title. |
String | KEY_STUDIO | String key: Studio. |
String | KEY_SUBTITLE | String key: Subtitle. |
String | KEY_TITLE | String key: Title. |
String | KEY_TRACK_NUMBER | Integer key: Track number. |
String | KEY_WIDTH | Integer key: Width. |
int | MEDIA_TYPE_AUDIOBOOK_CHAPTER | A media type representing an audiobook chapter. |
int | MEDIA_TYPE_GENERIC | A media type representing generic media content. |
int | MEDIA_TYPE_MOVIE | A media type representing a movie. |
int | MEDIA_TYPE_MUSIC_TRACK | A media type representing a music track. |
int | MEDIA_TYPE_PHOTO | A media type representing a photo. |
int | MEDIA_TYPE_TV_SHOW | A media type representing an TV show. |
int | MEDIA_TYPE_USER | The smallest media type value that can be assigned for application-defined media types. |
Inherited Constant Summary
Public Constructor Summary
MediaMetadata()
Constructs a new, empty, MediaMetadata with a media type of
MEDIA_TYPE_GENERIC .
|
|
MediaMetadata(int mediaType)
Constructs a new, empty, MediaMetadata with the given media type.
|
Public Method Summary
void | |
void |
clear()
Clears this object.
|
void |
clearImages()
Clears the list of images.
|
boolean | |
boolean | |
Calendar | |
String | |
double | |
List<WebImage> |
getImages()
Returns the list of images.
|
int | |
int |
getMediaType()
Gets the media type.
|
String | |
long | |
boolean |
hasImages()
Checks if the metadata includes any images.
|
int |
hashCode()
|
Set<String> |
keySet()
Returns a set of keys for all fields that are present in the object.
|
void | |
void | |
void | |
void | |
void | |
void |
writeToParcel(Parcelout, int
flags)
|
Inherited Method Summary
Constants
public static finalString KEY_ALBUM_ARTIST
String key: Album artist.
The name of the artist who produced an album. For example, in compilation albums such as DJ mixes, the album artist is not necessarily the same as the artist(s) of the individual songs on the album. This value is suitable for display purposes.
public static finalString KEY_ALBUM_TITLE
String key: Album title.
The title of the album that a music track belongs to. This value is suitable for display purposes.
public static finalString KEY_ARTIST
String key: Artist.
The name of the artist who created the media. For example, this could be the name of a musician, performer, or photographer. This value is suitable for display purposes.
public static finalString KEY_BOOK_TITLE
String key: Audiobook title.
The title of the audiobook.
public static finalString KEY_BROADCAST_DATE
String key: Broadcast date.
The value is the date and/or time at which the media was first broadcast, in ISO-8601 format. For example, this could be the date that a TV show episode was first aired.
public static finalString KEY_CHAPTER_NUMBER
String key: Chapter number.
The chapter number of the audiobook.
public static finalString KEY_CHAPTER_TITLE
String key: Chapter title.
The title of the chapter of the audiobook.
public static finalString KEY_COMPOSER
String key: Composer.
The name of the composer of a music track. This value is suitable for display purposes.
public static finalString KEY_CREATION_DATE
String key: Creation date.
The value is the date and/or time at which the media was created, in ISO-8601 format. For example, this could be the date and time at which a photograph was taken or a piece of music was recorded.
public static finalString KEY_DISC_NUMBER
Integer key: Disc number.
The disc number (counting from 1) that a music track belongs to in a multi-disc album.
public static finalString KEY_EPISODE_NUMBER
Integer key: Episode number.
The number of an episode in a given season of a TV show. Typically episode numbers are counted starting from 1, however this value may be 0 if it is a "pilot" episode that is not considered to be an official episode of the first season.
public static finalString KEY_HEIGHT
Integer key: Height.
The height of a piece of media, in pixels. This would typically be used for providing the dimensions of a photograph.
public static finalString KEY_LOCATION_LATITUDE
Double key: Location latitude.
The latitude component of the geographical location where a piece of media was created. For example, this could be the location of a photograph or the principal filming location of a movie.
public static finalString KEY_LOCATION_LONGITUDE
Double key: Location longitude.
The longitude component of the geographical location where a piece of media was created. For example, this could be the location of a photograph or the principal filming location of a movie.
public static finalString KEY_LOCATION_NAME
String key: Location name.
The name of a location where a piece of media was created. For example, this could be the location of a photograph or the principal filming location of a movie. This value is suitable for display purposes.
public static finalString KEY_QUEUE_ITEM_ID
Int key: Queue item ID.
The ID of the queue item that includes the section start time.
public static finalString KEY_RELEASE_DATE
String key: Release date.
The value is the date and/or time at which the media was released, in ISO-8601 format. For example, this could be the date that a movie or music album was released.
public static finalString KEY_SEASON_NUMBER
Integer key: Season number.
The season number that a TV show episode belongs to. Typically season numbers are counted starting from 1, however this value may be 0 if it is a "pilot" episode that predates the official start of a TV series.
public static finalString KEY_SECTION_DURATION
Time key in milliseconds: section duration.
The section duration in milliseconds.
public static finalString KEY_SECTION_START_ABSOLUTE_TIME
Time key in milliseconds: section start absolute time.
For live content, this field can be used to specify the absolute section start time. The value is in Epoch time in milliseconds.
public static finalString KEY_SECTION_START_TIME_IN_CONTAINER
Time key in milliseconds: section start time in the container.
Povides section start offset within the full container. For example audiobook chapter offset within the whole book.
public static finalString KEY_SECTION_START_TIME_IN_MEDIA
Time key in milliseconds: section start time in media item.
Offset of the section start time from the start of the media item (as specified by
KEY_QUEUE_ITEM_ID
)
in milliseconds.
public static finalString KEY_SERIES_TITLE
String key: Series title.
The name of a series. For example, this could be the name of a TV show or series of related music albums. This value is suitable for display purposes.
public static finalString KEY_STUDIO
String key: Studio.
The name of a recording studio that produced a piece of media. For example, this could be the name of a movie studio or music label. This value is suitable for display purposes.
public static finalString KEY_SUBTITLE
String key: Subtitle.
The subtitle of the media. This value is suitable for display purposes.
public static finalString KEY_TITLE
String key: Title.
The title of the media. For example, this could be the title of a song, movie, or TV show episode. This value is suitable for display purposes.
public static finalString KEY_TRACK_NUMBER
Integer key: Track number.
The track number of a music track on an album disc. Typically track numbers are counted starting from 1, however this value may be 0 if it is a "hidden track" at the beginning of an album.
public static finalString KEY_WIDTH
Integer key: Width.
The width of a piece of media, in pixels. This would typically be used for providing the dimensions of a photograph.
public static final int MEDIA_TYPE_AUDIOBOOK_CHAPTER
A media type representing an audiobook chapter.
public static final int MEDIA_TYPE_GENERIC
A media type representing generic media content.
public static final int MEDIA_TYPE_MOVIE
A media type representing a movie.
public static final int MEDIA_TYPE_MUSIC_TRACK
A media type representing a music track.
public static final int MEDIA_TYPE_PHOTO
A media type representing a photo.
public static final int MEDIA_TYPE_TV_SHOW
A media type representing an TV show.
public static final int MEDIA_TYPE_USER
The smallest media type value that can be assigned for application-defined media types.
Public Constructors
publicMediaMetadata()
Constructs a new, empty, MediaMetadata with a media type ofMEDIA_TYPE_GENERIC
.
publicMediaMetadata(int mediaType)
Constructs a new, empty, MediaMetadata with the given media type.
Parameters
mediaType | The media type; one of theMEDIA_TYPE_* constants, or a value
greater than or equal to
MEDIA_TYPE_USER for custom media types. |
---|
Public Methods
public voidaddImage(WebImage image)
Adds an image to the list of images.
public voidclear()
Clears this object. The media type is left unchanged.
public voidclearImages()
Clears the list of images.
public booleancontainsKey(Stringkey)
Tests if the object contains a field with the given key.
public booleanequals(Objectother)
publicCalendar getDate(Stringkey)
Reads the value of a date field.
Parameters
key | The field name. |
---|
Returns
- The date, as a
Calendar
,ornull
if this field has not been set.
Throws
IllegalArgumentException | If the key isnull or empty or the specified field's predefined
type is not a date. |
---|
publicStringgetDateAsString(Stringkey)
Reads the value of a date field, as a string.
Parameters
key | The field name. |
---|
Returns
- The date, as a
String
containing hte ISO-8601 representation of the date, ornull
if this field has not been set.
Throws
IllegalArgumentException | If the key isnull or empty or the specified field's predefined
type is not a date. |
---|
public doublegetDouble(Stringkey)
Reads the value of adouble
field.
Returns
- The value of the field, or
0
if the field has not been set.
Throws
IllegalArgumentException | If the key isnull or empty or refers to a predefined field which
is not adouble field. |
---|
publicList<WebImage> getImages()
Returns the list of images. If there are no images, returns an empty list.
public intgetInt(Stringkey)
Reads the value of anint
field.
Returns
- The value of the field, or
0
if the field has not been set.
Throws
IllegalArgumentException | If the key isnull or empty or refers to a predefined field which
is not anint field. |
---|
public intgetMediaType()
Gets the media type.
publicStringgetString(Stringkey)
Reads the value of a String field.
Returns
- The value of the field, or
null
if the field has not been set.
Throws
IllegalArgumentException | If the key isnull or empty or refers to a predefined field which
is not aString field. |
---|
public longgetTimeMillis(Stringkey)
Reads the value of a time field, as along
in milliseconds.
Parameters
key | the field name |
---|
Returns
- the time, as long in milliseconds, or
0L
if the field has not been set
Throws
IllegalArgumentException | If the key isnull or empty or the specified field's predefined
type is not time |
---|
public booleanhasImages()
Checks if the metadata includes any images.
public inthashCode()
public voidputDate(Stringkey,Calendarvalue)
Stores a value in a date field.
Parameters
key | The key for the field. |
---|---|
value | The new value for the field. |
Throws
IllegalArgumentException | If the key isnull or empty or refers to a predefined field which
is not a date field. |
---|
public voidputDouble(Stringkey, double value)
Stores a value in adouble
field.
Parameters
key | The key for the field. |
---|---|
value | The new value for the field. |
Throws
IllegalArgumentException | If the key isnull or empty or refers to a predefined field which
is not adouble field. |
---|
public voidputInt(Stringkey, int value)
Stores a value in an int field.
Parameters
key | The key for the field. |
---|---|
value | The new value for the field. |
Throws
IllegalArgumentException | If the key isnull or empty or refers to a predefined field which
is not anint field. |
---|
public voidputString(Stringkey,Stringvalue)
Stores a value in a String field.
Parameters
key | The key for the field. |
---|---|
value | The new value for the field. |
Throws
IllegalArgumentException | If the key isnull or empty or refers to a predefined field which
is not aString field. |
---|
public voidputTimeMillis(Stringkey, long value)
Stores a value in a time field.
Parameters
key | the key for the field |
---|---|
value | the new value for the field, as long in milliseconds |
Throws
IllegalArgumentException | If the key isnull or empty or refers to a predefined field which
is not a time field |
---|