GCKMediaMetadata Class

GCKMediaMetadata Class Reference

Overview

A container 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.

The values of the predefined fields have predefined types. For example, a track number is an NSInteger and a creation date is an NSString containing an ISO-8601 representation of a date and time. Attempting to store a value of an incorrect type in a field will raise an NSInvalidArgumentException .

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 will not be included in the serialized form, but any application-defined fields will always be included. The complete list of predefined fields is as follows:

Field Value Type Valid Metadata Types
NSDate GCKMediaMetadataTypePhoto
NSDate GCKMediaMetadataTypeGeneric , GCKMediaMetadataTypeMovie , GCKMediaMetadataTypeTVShow , GCKMediaMetadataTypeMusicTrack
NSDate GCKMediaMetadataTypeTVShow
NSString GCKMediaMetadataTypeGeneric , GCKMediaMetadataTypeMovie , GCKMediaMetadataTypeTVShow , GCKMediaMetadataTypeMusicTrack , GCKMediaMetadataTypePhoto
NSString GCKMediaMetadataTypeGeneric , GCKMediaMetadataTypeMovie
NSString GCKMediaMetadataTypeGeneric , GCKMediaMetadataTypeMusicTrack , GCKMediaMetadataTypePhoto
NSString GCKMediaMetadataTypeMusicTrack
NSString GCKMediaMetadataTypeMusicTrack
NSString GCKMediaMetadataTypeMusicTrack
NSInteger GCKMediaMetadataTypeMusicTrack
NSInteger GCKMediaMetadataTypeMusicTrack
NSInteger GCKMediaMetadataTypeTVShow
NSInteger GCKMediaMetadataTypeTVShow
NSString GCKMediaMetadataTypeTVShow
NSString GCKMediaMetadataTypeMovie
NSInteger GCKMediaMetadataTypePhoto
NSInteger GCKMediaMetadataTypePhoto
NSString GCKMediaMetadataTypePhoto
double GCKMediaMetadataTypePhoto
double GCKMediaMetadataTypePhoto

Inherits NSObject, <NSCopying>, and <NSSecureCoding>.

Instance Method Summary

(instancetype) 
Initializes a new, empty, MediaMetadata with the given media type. More...
(instancetype) 
- init
Initialize with the generic metadata type. More...
The metadata type. More...
(NSArray *) 
Gets the list of images. More...
Removes all the current images. More...
(void) 
Adds an image to the list of images. More...
(BOOL) 
Tests if the object contains a field with the given key. More...
(NSArray< NSString * > *) 
Returns a set of keys for all fields that are present in the object. More...
(nullable id) 
Reads the value of a field. More...
(void) 
Stores a value in a string field. More...
(nullable NSString *) 
Reads the value of a string field. More...
(void) 
Stores a value in an integer field. More...
(NSInteger) 
Reads the value of an integer field. More...
(NSInteger) 
Reads the value of an integer field. More...
(void) 
Stores a value in a double field. More...
(double) 
Reads the value of a double field. More...
Reads the value of a double field. More...
(void) 
Stores a value in a date field as a restricted ISO-8601 representation of the date. More...
(nullable NSDate *) 
Reads the value of a date field from the restricted ISO-8601 representation of the date. More...
(nullable NSString *) 
Reads the value of a date field, as a string. More...

Public Attributes

NSString *const 
String key: Creation date. More...
NSString *const 
String key: Release date. More...
NSString *const 
String key: Broadcast date. More...
NSString *const 
String key: Title. More...
NSString *const 
String key: Subtitle. More...
NSString *const 
String key: Artist. More...
NSString *const 
String key: Album artist. More...
NSString *const 
String key: Album title. More...
NSString *const 
String key: Composer. More...
NSString *const 
Integer key: Disc number. More...
NSString *const 
Integer key: Track number. More...
NSString *const 
Integer key: Season number. More...
NSString *const 
Integer key: Episode number. More...
NSString *const 
String key: Series title. More...
NSString *const 
String key: Studio. More...
NSString *const 
Integer key: Width. More...
NSString *const 
Integer key: Height. More...
NSString *const 
String key: Location name. More...
Double key: Location latitude. More...
Double key: Location longitude. More...
NSString *const 
String key: Book title. More...
NSString *const 
Integer key: Chapter number. More...
NSString *const 
String key: Chapter title. More...
NSString *const 
Double key: Section Duration. More...
Double key: Section Start Time in Media. More...
Double key: Section Absolute Start Time. More...
Double key: Section Start Time in Container. More...
NSString *const 
Double key: Queue Item ID. More...

Property Summary

The metadata type. More...

Method Detail

- (instancetype) initWithMetadataType: ( GCKMediaMetadataType metadataType

Initializes a new, empty, MediaMetadata with the given media type.

Designated initializer.

Parameters
metadataType
The media type; one of the GCKMediaMetadataType constants, or a value greater than or equal to GCKMediaMetadataTypeUser for custom media types.
- (instancetype) init

Initialize with the generic metadata type.

- ( GCKMediaMetadataType ) metadataType

The metadata type.

- (NSArray *) images

Gets the list of images.

- (void) removeAllMediaImages

Removes all the current images.

- (void) addImage: ( GCKImage *)  image

Adds an image to the list of images.

Parameters
image
The image to add.
- (BOOL) containsKey: (NSString *)  key

Tests if the object contains a field with the given key.

Parameters
key
The key.
Returns
YES if the field exists, NO otherwise.
- (NSArray<NSString *> *) allKeys

Returns a set of keys for all fields that are present in the object.

- (nullable id) objectForKey: (NSString *)  key

Reads the value of a field.

Parameters
key
The key for the field.
Returns
The value of the field, or nil if the field has not been set.
- (void) setString: (NSString *)  value
forKey: (NSString *)  key

Stores a value in a string field.

Parameters
value The new value for the field.
key The key for the field.
Exceptions
NSInvalidArgumentException
if the key refers to a predefined field which is not a string field.
- (nullable NSString *) stringForKey: (NSString *)  key

Reads the value of a string field.

Parameters
key
The key for the field.
Returns
The value of the field, or nil if the field has not been set.
Exceptions
NSInvalidArgumentException
if the key refers to a predefined field which is not a string field.
- (void) setInteger: (NSInteger)  value
forKey: (NSString *)  key

Stores a value in an integer field.

Parameters
value The new value for the field.
key The key for the field.
Exceptions
NSInvalidArgumentException
if the key refers to a predefined field which is not an integer field.
- (NSInteger) integerForKey: (NSString *)  key

Reads the value of an integer field.

Parameters
key
The key for the field.
Returns
The value of the field, or 0 if the field has not been set.
Exceptions
NSInvalidArgumentException
if the key refers to a predefined field which is not an integer field.
- (NSInteger) integerForKey: (NSString *)  key
defaultValue: (NSInteger)  defaultValue

Reads the value of an integer field.

Parameters
key The key for the field.
defaultValue The value to return if the field has not been set.
Returns
The value of the field, or the given default value if the field has not been set.
Exceptions
NSInvalidArgumentException
if the key refers to a predefined field which is not an integer field.
- (void) setDouble: (double)  value
forKey: (NSString *)  key

Stores a value in a double field.

Parameters
value The new value for the field.
key The key for the field.
Exceptions
NSInvalidArgumentException
if the key refers to a predefined field which is not a double field.
- (double) doubleForKey: (NSString *)  key

Reads the value of a double field.

Parameters
key
The key for the field.
Returns
The value of the field, or 0 if the field has not been set.
Exceptions
NSInvalidArgumentException
if the key refers to a predefined field which is not a double field.
- (double) doubleForKey: (NSString *)  key
defaultValue: (double)  defaultValue

Reads the value of a double field.

Parameters
defaultValue The value to return if the field has not been set.
key The key for the field.
Returns
The value of the field, or the given default value if the field has not been set.
Exceptions
NSInvalidArgumentException
if the key refers to a predefined field which is not a double field.
- (void) setDate: (NSDate *)  date
forKey: (NSString *)  key

Stores a value in a date field as a restricted ISO-8601 representation of the date.

Parameters
date The new value for the field.
key The key for the field.
Exceptions
NSInvalidArgumentException
if the key refers to a predefined field which is not a date field.
- (nullable NSDate *) dateForKey: (NSString *)  key

Reads the value of a date field from the restricted ISO-8601 representation of the date.

Parameters
key
The field name.
Returns
The date, or nil if this field has not been set.
Exceptions
NSInvalidArgumentException
if the key refers to a predefined field which is not a date field.
- (nullable NSString *) dateAsStringForKey: (NSString *)  key

Reads the value of a date field, as a string.

Parameters
key
The field name.
Returns
The date as a string containing the restricted ISO-8601 representation of the date, or nil if this field has not been set.
Exceptions
NSInvalidArgumentException
if the key refers to a predefined field which is not a date field.

Member Data Documentation

- (NSString* const) kGCKMetadataKeyCreationDate

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.

- (NSString* const) kGCKMetadataKeyReleaseDate

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.

- (NSString* const) kGCKMetadataKeyBroadcastDate

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.

- (NSString* const) kGCKMetadataKeyTitle

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.

- (NSString* const) kGCKMetadataKeySubtitle

String key: Subtitle.

The subtitle of the media. This value is suitable for display purposes.

- (NSString* const) kGCKMetadataKeyArtist

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.

- (NSString* const) kGCKMetadataKeyAlbumArtist

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.

- (NSString* const) kGCKMetadataKeyAlbumTitle

String key: Album title.

The title of the album that a music track belongs to. This value is suitable for display purposes.

- (NSString* const) kGCKMetadataKeyComposer

String key: Composer.

The name of the composer of a music track. This value is suitable for display purposes.

- (NSString* const) kGCKMetadataKeyDiscNumber

Integer key: Disc number.

The disc number (counting from 1) that a music track belongs to in a multi-disc album.

- (NSString* const) kGCKMetadataKeyTrackNumber

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.

- (NSString* const) kGCKMetadataKeySeasonNumber

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.

- (NSString* const) kGCKMetadataKeyEpisodeNumber

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.

- (NSString* const) kGCKMetadataKeySeriesTitle

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.

- (NSString* const) kGCKMetadataKeyStudio

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.

- (NSString* const) kGCKMetadataKeyWidth

Integer key: Width.

The width of a piece of media, in pixels. This would typically be used for providing the dimensions of a photograph.

- (NSString* const) kGCKMetadataKeyHeight

Integer key: Height.

The height of a piece of media, in pixels. This would typically be used for providing the dimensions of a photograph.

- (NSString* const) kGCKMetadataKeyLocationName

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.

- (NSString* const) kGCKMetadataKeyLocationLatitude

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.

- (NSString* const) kGCKMetadataKeyLocationLongitude

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.

- (NSString* const) kGCKMetadataKeyBookTitle

String key: Book title.

The title of an audio book.

Since
4.3.5
- (NSString* const) kGCKMetadataKeyChapterNumber

Integer key: Chapter number.

The number of a chapter in an audio book.

Since
4.3.5
- (NSString* const) kGCKMetadataKeyChapterTitle

String key: Chapter title.

The title of a chapter in a audio book.

Since
4.3.5
- (NSString* const) kGCKMetadataKeySectionDuration

Double key: Section Duration.

The section duration in seconds. Used for queue metadata. For example, this could be a duration of one TV show in a queue, or a chapter duration of an audio book, or a program of a long live stream.

Since
4.4.1
- (NSString* const) kGCKMetadataKeySectionStartTimeInMedia

Double key: Section Start Time in Media.

The offset of section start time from the start of the media item in seconds. Used for queue metadata.

Since
4.4.1
- (NSString* const) kGCKMetadataKeySectionStartAbsoluteTime

Double key: Section Absolute Start Time.

The absolute time of section start, in epoch time in seconds. Used for queue metadata.

Since
4.4.1
- (NSString* const) kGCKMetadataKeySectionStartTimeInContainer

Double key: Section Start Time in Container.

The offset of section start time within the full container. Used for queue metadata.

Since
4.4.1
- (NSString* const) kGCKMetadataKeyQueueItemID

Double key: Queue Item ID.

The id of the queue item that includes the section start time. Used for queue metadata.

Since
4.4.1

Property Detail

- ( GCKMediaMetadataType ) metadataType
read nonatomic assign

The metadata type.

Create a Mobile Website
View Site in Mobile | Classic
Share by: