1692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim/* 2692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * Copyright 2018 The Android Open Source Project 3692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * 4692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * Licensed under the Apache License, Version 2.0 (the "License"); 5692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * you may not use this file except in compliance with the License. 6692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * You may obtain a copy of the License at 7692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * 8692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * http://www.apache.org/licenses/LICENSE-2.0 9692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * 10692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * Unless required by applicable law or agreed to in writing, software 11692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * distributed under the License is distributed on an "AS IS" BASIS, 12692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * See the License for the specific language governing permissions and 14692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * limitations under the License. 15692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim */ 16692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim 17692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Limpackage com.android.support.mediarouter.media; 18692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim 19692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Limimport android.os.Bundle; 20692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim 21692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim/** 22692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * Constants for specifying metadata about a media item as a {@link Bundle}. 23692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * <p> 24692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * This class is part of the remote playback protocol described by the 25692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * {@link MediaControlIntent MediaControlIntent} class. 26692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * </p><p> 27692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * Media item metadata is described as a bundle of key/value pairs as defined 28692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * in this class. The documentation specifies the type of value associated 29692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * with each key. 30692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * </p><p> 31692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * An application may specify additional custom metadata keys but there is no guarantee 32692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * that they will be recognized by the destination. 33692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * </p> 34692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim */ 35692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Limpublic final class MediaItemMetadata { 36692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim /* 37692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * Note: MediaMetadataRetriever also defines a collection of metadata keys that can be 38692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * retrieved from a content stream although the representation is somewhat different here 39692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * since we are sending the data to a remote endpoint. 40692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim */ 41692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim 42692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim private MediaItemMetadata() { 43692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim } 44692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim 45692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim /** 46692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * String key: Album artist name. 47692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * <p> 48692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * The value is a string suitable for display. 49692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * </p> 50692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim */ 51692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim public static final String KEY_ALBUM_ARTIST = "android.media.metadata.ALBUM_ARTIST"; 52692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim 53692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim /** 54692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * String key: Album title. 55692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * <p> 56692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * The value is a string suitable for display. 57692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * </p> 58692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim */ 59692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim public static final String KEY_ALBUM_TITLE = "android.media.metadata.ALBUM_TITLE"; 60692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim 61692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim /** 62692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * String key: Artwork Uri. 63692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * <p> 64692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * The value is a string URI for an image file associated with the media item, 65692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * such as album or cover art. 66692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * </p> 67692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim */ 68692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim public static final String KEY_ARTWORK_URI = "android.media.metadata.ARTWORK_URI"; 69692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim 70692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim /** 71692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * String key: Artist name. 72692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * <p> 73692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * The value is a string suitable for display. 74692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * </p> 75692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim */ 76692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim public static final String KEY_ARTIST = "android.media.metadata.ARTIST"; 77692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim 78692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim /** 79692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * String key: Author name. 80692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * <p> 81692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * The value is a string suitable for display. 82692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * </p> 83692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim */ 84692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim public static final String KEY_AUTHOR = "android.media.metadata.AUTHOR"; 85692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim 86692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim /** 87692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * String key: Composer name. 88692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * <p> 89692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * The value is a string suitable for display. 90692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * </p> 91692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim */ 92692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim public static final String KEY_COMPOSER = "android.media.metadata.COMPOSER"; 93692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim 94692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim /** 95692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * String key: Track title. 96692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * <p> 97692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * The value is a string suitable for display. 98692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * </p> 99692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim */ 100692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim public static final String KEY_TITLE = "android.media.metadata.TITLE"; 101692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim 102692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim /** 103692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * Integer key: Year of publication. 104692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * <p> 105692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * The value is an integer year number. 106692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * </p> 107692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim */ 108692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim public static final String KEY_YEAR = "android.media.metadata.YEAR"; 109692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim 110692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim /** 111692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * Integer key: Track number (such as a track on a CD). 112692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * <p> 113692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * The value is a one-based integer track number. 114692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * </p> 115692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim */ 116692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim public static final String KEY_TRACK_NUMBER = "android.media.metadata.TRACK_NUMBER"; 117692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim 118692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim /** 119692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * Integer key: Disc number within a collection. 120692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * <p> 121692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * The value is a one-based integer disc number. 122692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * </p> 123692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim */ 124692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim public static final String KEY_DISC_NUMBER = "android.media.metadata.DISC_NUMBER"; 125692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim 126692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim /** 127692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * Long key: Item playback duration in milliseconds. 128692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * <p> 129692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * The value is a <code>long</code> number of milliseconds. 130692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * </p><p> 131692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * The duration metadata is only a hint to enable a remote media player to 132692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * guess the duration of the content before it actually opens the media stream. 133692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * The remote media player should still determine the actual content duration from 134692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * the media stream itself independent of the value that may be specified by this key. 135692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim * </p> 136692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim */ 137692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim public static final String KEY_DURATION = "android.media.metadata.DURATION"; 138692a547730bbc95ad277d5214ef3d786ce1e499fSungsoo Lim} 139