blob: d52ddb62598bc0b96fb311d20a97c0421e344b1f [file] [log] [blame]
/*
* Copyright 2018 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.support.mediarouter.media;
import android.os.Bundle;
/**
* Constants for specifying metadata about a media item as a {@link Bundle}.
* <p>
* This class is part of the remote playback protocol described by the
* {@link MediaControlIntent MediaControlIntent} class.
* </p><p>
* Media item metadata is described as a bundle of key/value pairs as defined
* in this class. The documentation specifies the type of value associated
* with each key.
* </p><p>
* An application may specify additional custom metadata keys but there is no guarantee
* that they will be recognized by the destination.
* </p>
*/
public final class MediaItemMetadata {
/*
* Note: MediaMetadataRetriever also defines a collection of metadata keys that can be
* retrieved from a content stream although the representation is somewhat different here
* since we are sending the data to a remote endpoint.
*/
private MediaItemMetadata() {
}
/**
* String key: Album artist name.
* <p>
* The value is a string suitable for display.
* </p>
*/
public static final String KEY_ALBUM_ARTIST = "android.media.metadata.ALBUM_ARTIST";
/**
* String key: Album title.
* <p>
* The value is a string suitable for display.
* </p>
*/
public static final String KEY_ALBUM_TITLE = "android.media.metadata.ALBUM_TITLE";
/**
* String key: Artwork Uri.
* <p>
* The value is a string URI for an image file associated with the media item,
* such as album or cover art.
* </p>
*/
public static final String KEY_ARTWORK_URI = "android.media.metadata.ARTWORK_URI";
/**
* String key: Artist name.
* <p>
* The value is a string suitable for display.
* </p>
*/
public static final String KEY_ARTIST = "android.media.metadata.ARTIST";
/**
* String key: Author name.
* <p>
* The value is a string suitable for display.
* </p>
*/
public static final String KEY_AUTHOR = "android.media.metadata.AUTHOR";
/**
* String key: Composer name.
* <p>
* The value is a string suitable for display.
* </p>
*/
public static final String KEY_COMPOSER = "android.media.metadata.COMPOSER";
/**
* String key: Track title.
* <p>
* The value is a string suitable for display.
* </p>
*/
public static final String KEY_TITLE = "android.media.metadata.TITLE";
/**
* Integer key: Year of publication.
* <p>
* The value is an integer year number.
* </p>
*/
public static final String KEY_YEAR = "android.media.metadata.YEAR";
/**
* Integer key: Track number (such as a track on a CD).
* <p>
* The value is a one-based integer track number.
* </p>
*/
public static final String KEY_TRACK_NUMBER = "android.media.metadata.TRACK_NUMBER";
/**
* Integer key: Disc number within a collection.
* <p>
* The value is a one-based integer disc number.
* </p>
*/
public static final String KEY_DISC_NUMBER = "android.media.metadata.DISC_NUMBER";
/**
* Long key: Item playback duration in milliseconds.
* <p>
* The value is a <code>long</code> number of milliseconds.
* </p><p>
* The duration metadata is only a hint to enable a remote media player to
* guess the duration of the content before it actually opens the media stream.
* The remote media player should still determine the actual content duration from
* the media stream itself independent of the value that may be specified by this key.
* </p>
*/
public static final String KEY_DURATION = "android.media.metadata.DURATION";
}