Nachdem Sie mit durchsuchbaren oder abspielbaren Elementen Ihre Inhaltshierarchie erstellt haben, können Sie Inhaltsstile anwenden, um festzulegen, wie diese Elemente im Auto angezeigt werden. Verwenden Sie diese Inhaltsstile:

Abbildung 1: Bei Listenelementen haben Titel und Metadaten Vorrang vor Bildern.

Abbildung 2: Bei Rasterelementen werden Bilder vor Titeln und Metadaten priorisiert.
Standardstile für Inhalte festlegen
Sie können globale Standardeinstellungen für die Darstellung Ihrer Media-Elemente festlegen. Dazu müssen Sie bestimmte Konstanten in das BrowserRoot
-Extras-Bundle aufnehmen, das von der onGetRoot
-Implementierung Ihres Dienstes zurückgegeben wird, und nach diesen Konstanten suchen, um den entsprechenden Stil zu ermitteln.
Diese Extras können als Schlüssel im Bundle verwendet werden:
DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_BROWSABLE
: Ein Präsentationstipp für alle durchsuchbaren Elemente in der Suchstruktur.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_PLAYABLE
: Ein Präsentationstipp für alle wiedergebaren Elemente im Browserbaum.
Diese Schlüssel können den folgenden ganzzahligen Konstantenwerten zugeordnet werden, um die Darstellung der Elemente zu beeinflussen:
DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_LIST_ITEM
: Entsprechende Elemente, die als Listenelemente dargestellt werden.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_GRID_ITEM
: Entsprechende Elemente, die als Rasterelemente dargestellt werden.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_LIST_ITEM
: Entsprechende Elemente werden als Listenelemente vom Typ „category“ dargestellt, ähnlich wie normale Listenelemente. Allerdings werden Ränder um die Symbole der Elemente angewendet. Dadurch wird die Darstellung kleiner Symbole verbessert. Symbole müssen tintenfähige Vektordrawables sein. Dieser Hinweis sollte nur für durchsuchbare Elemente angegeben werden.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_GRID_ITEM
: Entsprechende Elemente werden als „Kategorie“-Grid-Elemente dargestellt. Sie ähneln normalen Grid-Elementen, aber um die Symbole der Elemente werden Ränder angewendet. Dadurch wird die Darstellung kleiner Symbole verbessert. Die Symbole müssen als Vektordrawables vorliegen, die eingefärbt werden können. Dieser Hinweis sollte nur für durchsuchbare Elemente angezeigt werden.
In diesem Code-Snippet wird gezeigt, wie Sie das Standardinhaltsformat für durchsuchbare Elemente auf Raster und für abspielbare Elemente auf Listen festlegen:
Kotlin
import androidx.media.utils.MediaConstants
@Nullable
override fun onGetRoot(
@NonNull clientPackageName: String,
clientUid: Int,
@Nullable rootHints: Bundle
): BrowserRoot {
val extras = Bundle()
extras.putInt(
MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_BROWSABLE,
MediaConstants.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_GRID_ITEM)
extras.putInt(
MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_PLAYABLE,
MediaConstants.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_LIST_ITEM)
return BrowserRoot(ROOT_ID, extras)
}
Java
import androidx.media.utils.MediaConstants;
@Nullable
@Override
public BrowserRoot onGetRoot(
@NonNull String clientPackageName,
int clientUid,
@Nullable Bundle rootHints) {
Bundle extras = new Bundle();
extras.putInt(
MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_BROWSABLE,
MediaConstants.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_GRID_ITEM);
extras.putInt(
MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_PLAYABLE,
MediaConstants.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_LIST_ITEM);
return new BrowserRoot(ROOT_ID, extras);
}
Inhaltsstile für einzelne Elemente festlegen
Sie können den Standardinhaltsstil für alle untergeordneten Elemente eines durchsuchbaren Media-Elements sowie für alle Media-Elemente überschreiben. Wenn Sie die Standardeinstellung für die untergeordneten Elemente eines durchsuchbaren Media-Elements überschreiben möchten, erstellen Sie ein Extras-Bundle im MediaDescription
des Media-Elements und fügen Sie die oben genannten Hinweise hinzu:
DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_PLAYABLE
gilt für die abspielbaren untergeordneten Elemente dieses Artikels.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_BROWSABLE
gilt für die durchsuchbaren untergeordneten Elemente dieses Artikels.
Wenn Sie den Standardwert für ein bestimmtes Media-Element (nicht für seine untergeordneten Elemente) überschreiben möchten, erstellen Sie im MediaDescription
des Media-Elements ein Extras-Bundle. Fügen Sie dann einen Hinweis mit dem Schlüssel DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_SINGLE_ITEM
hinzu. Verwenden Sie die zuvor beschriebenen Werte, um die Darstellung des Elements festzulegen.
In diesem Code-Snippet wird gezeigt, wie Sie ein durchsuchbares MediaItem
erstellen, das den Standardinhaltsstil für sich selbst und seine untergeordneten Elemente überschreibt. Es wird als Kategorielistenelement formatiert, seine durchsuchbaren untergeordneten Elemente als Listenelemente und seine abspielbaren untergeordneten Elemente als Rasterelemente.
Kotlin
import androidx.media.utils.MediaConstants
private fun createBrowsableMediaItem(
mediaId: String,
folderName: String,
iconUri: Uri
): MediaBrowser.MediaItem {
val mediaDescriptionBuilder = MediaDescription.Builder()
mediaDescriptionBuilder.setMediaId(mediaId)
mediaDescriptionBuilder.setTitle(folderName)
mediaDescriptionBuilder.setIconUri(iconUri)
val extras = Bundle()
extras.putInt(
MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_SINGLE_ITEM,
MediaConstants.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_LIST_ITEM)
extras.putInt(
MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_BROWSABLE,
MediaConstants.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_LIST_ITEM)
extras.putInt(
MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_PLAYABLE,
MediaConstants.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_GRID_ITEM)
mediaDescriptionBuilder.setExtras(extras)
return MediaBrowser.MediaItem(
mediaDescriptionBuilder.build(), MediaBrowser.MediaItem.FLAG_BROWSABLE)
}
Java
import androidx.media.utils.MediaConstants;
private MediaBrowser.MediaItem createBrowsableMediaItem(
String mediaId,
String folderName,
Uri iconUri) {
MediaDescription.Builder mediaDescriptionBuilder = new MediaDescription.Builder();
mediaDescriptionBuilder.setMediaId(mediaId);
mediaDescriptionBuilder.setTitle(folderName);
mediaDescriptionBuilder.setIconUri(iconUri);
Bundle extras = new Bundle();
extras.putInt(
MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_SINGLE_ITEM,
MediaConstants.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_LIST_ITEM);
extras.putInt(
MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_BROWSABLE,
MediaConstants.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_LIST_ITEM);
extras.putInt(
MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_PLAYABLE,
MediaConstants.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_GRID_ITEM);
mediaDescriptionBuilder.setExtras(extras);
return new MediaBrowser.MediaItem(
mediaDescriptionBuilder.build(), MediaBrowser.MediaItem.FLAG_BROWSABLE);
}
Elemente anhand von Titelhinweisen gruppieren
Verwenden Sie einen Hinweis pro Element, um ähnliche Media-Elemente zu gruppieren. Für jedes Media-Element in einer Gruppe muss im MediaDescription
ein Extras-Bundle deklariert werden. Dieses Bundle muss eine Zuordnung mit dem Schlüssel DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE
und einem identischen Stringwert enthalten. Lokalisieren Sie diesen String, da er für den Titel der Gruppe verwendet wird.
Dieses Code-Snippet zeigt, wie Sie ein MediaItem
-Objekt mit der Untergruppenüberschrift Songs
erstellen:
Kotlin
import androidx.media.utils.MediaConstants
private fun createMediaItem(
mediaId: String,
folderName: String,
iconUri: Uri
): MediaBrowser.MediaItem {
val mediaDescriptionBuilder = MediaDescription.Builder()
mediaDescriptionBuilder.setMediaId(mediaId)
mediaDescriptionBuilder.setTitle(folderName)
mediaDescriptionBuilder.setIconUri(iconUri)
val extras = Bundle()
extras.putString(
MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE,
"Songs")
mediaDescriptionBuilder.setExtras(extras)
return MediaBrowser.MediaItem(
mediaDescriptionBuilder.build(), /* playable or browsable flag*/)
}
Java
import androidx.media.utils.MediaConstants;
private MediaBrowser.MediaItem createMediaItem(String mediaId, String folderName, Uri iconUri) {
MediaDescription.Builder mediaDescriptionBuilder = new MediaDescription.Builder();
mediaDescriptionBuilder.setMediaId(mediaId);
mediaDescriptionBuilder.setTitle(folderName);
mediaDescriptionBuilder.setIconUri(iconUri);
Bundle extras = new Bundle();
extras.putString(
MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE,
"Songs");
mediaDescriptionBuilder.setExtras(extras);
return new MediaBrowser.MediaItem(
mediaDescriptionBuilder.build(), /* playable or browsable flag*/);
}
Ihre App muss alle Media-Elemente, die Sie gruppieren möchten, als zusammenhängenden Block übergeben. Angenommen, Sie möchten zwei Gruppen von Media-Elementen in dieser Reihenfolge anzeigen: „Songs“ und „Alben“. Wenn Ihre App fünf Media-Elemente in dieser Reihenfolge übergibt, interpretieren Android Auto und AAOS sie als vier separate Gruppen:
- Medienelement A mit
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs")
- Medienelement B mit
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Albums")
- Medienelement C mit
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs")
- Mediendatei D mit
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs")
- Medienelement E mit
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Albums")
Daraus ergeben sich die folgenden vier Gruppen:
- Gruppe 1 mit dem Namen „Songs“ und dem Media-Element A
- Gruppe 2 mit dem Namen „Alben“, die das Media-Element B enthält
- Gruppe 3 mit dem Namen „Songs“ mit den Media-Elementen C und D
- Gruppe 4 mit dem Namen „Alben“, die das Media-Element E enthält
Wenn Sie diese Elemente in zwei Gruppen anzeigen möchten, muss Ihre App die Media-Elemente stattdessen in dieser Reihenfolge übergeben:
- Medienelement A mit
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs")
- Medienelement C mit
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs")
- Mediendatei D mit
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs")
- Medienelement B mit
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Albums")
- Medienelement E mit
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Albums")
Zusätzliche Metadatenindikatoren anzeigen
Sie können zusätzliche Metadatenindikatoren einfügen, um auf einen Blick Informationen zu Inhalten in der Media-Browser-Baumstruktur und während der Wiedergabe zu erhalten.
Im Browserbaum werden für Android Auto und AAOS die Extras gelesen, die einem Element zugeordnet sind, und die Indikatoren werden angezeigt. Während der Medienwiedergabe lesen Android Auto und AAOS die Metadaten für die Mediensitzung und suchen nach bestimmten Konstanten, um zu ermitteln, welche Anzeigen angezeigt werden sollen.

Abbildung 3: Wiedergabeansicht mit Metadaten.

Abbildung 4: Übersicht für nicht wiedergegebene Inhalte.
Diese Konstanten können sowohl in MediaItem
-Beschreibungsextras als auch in MediaMetadata
-Extras verwendet werden:
EXTRA_DOWNLOAD_STATUS
: Gibt den Downloadstatus eines Elements an. Verwenden Sie diese Konstante als Schlüssel. Diese langen Konstanten sind mögliche Werte:STATUS_DOWNLOADED
: Der Artikel wurde vollständig heruntergeladen.STATUS_DOWNLOADING
: Das Element wird gerade heruntergeladen.STATUS_NOT_DOWNLOADED
: Der Artikel wurde nicht heruntergeladen.
METADATA_KEY_IS_EXPLICIT
: Gibt an, dass der Artikel explizite Inhalte enthält. Verwenden Sie diese Konstante als Schlüssel und den langenMETADATA_VALUE_ATTRIBUTE_PRESENT
-Wert, um anzugeben, dass ein Artikel explizit ist.
Diese Konstanten können nur in MediaItem
-Beschreibungsextras verwendet werden:
DESCRIPTION_EXTRAS_KEY_COMPLETION_STATUS
: Gibt den Abschlussstatus von Langform-Inhalten wie Podcastfolgen und Hörbüchern an. Verwenden Sie diese Konstante als Schlüssel. Diese Ganzzahlkonstanten sind mögliche Werte:DESCRIPTION_EXTRAS_VALUE_COMPLETION_STATUS_NOT_PLAYED
: Der Artikel wurde noch nicht wiedergegeben.DESCRIPTION_EXTRAS_VALUE_COMPLETION_STATUS_PARTIALLY_PLAYED
: Das Element wurde teilweise wiedergegeben und die aktuelle Position befindet sich irgendwo in der Mitte.DESCRIPTION_EXTRAS_VALUE_COMPLETION_STATUS_FULLY_PLAYED
: Der Artikel ist abgeschlossen.
DESCRIPTION_EXTRAS_KEY_COMPLETION_PERCENTAGE
: Gibt den Fortschritt der Vervollständigung von Langform-Inhalten als Double zwischen 0,0 und 1,0 an. Dadurch werden mehr Informationen zum Status vonPARTIALLY_PLAYING
bereitgestellt, sodass Android Auto oder AAOS eine aussagekräftigere Fortschrittsanzeige wie einen Fortschrittsbalken anzeigen können. Wenn Sie dieses Extra verwenden, finden Sie unter Fortschrittsanzeige in der Übersichtsansicht während der Wiedergabe von Inhalten aktualisieren Informationen dazu, wie Sie diesen Indikator nach dem ersten Aufruf auf dem neuesten Stand halten.
Wenn Sie Indikatoren anzeigen möchten, die während des Browsens des Media-Browsing-Baums durch den Nutzer erscheinen, erstellen Sie ein Extras-Bundle, das eine oder mehrere dieser Konstanten enthält.
Übergeben Sie dieses Bundle dann an die MediaDescription.Builder.setExtras
-Methode.
In diesem Snippet wird gezeigt, wie Sie Indikatoren für ein explizites Media-Element anzeigen, das zu 70% abgeschlossen ist:
Kotlin
import androidx.media.utils.MediaConstants
val extras = Bundle()
extras.putLong(
MediaConstants.METADATA_KEY_IS_EXPLICIT,
MediaConstants.METADATA_VALUE_ATTRIBUTE_PRESENT)
extras.putInt(
MediaConstants.DESCRIPTION_EXTRAS_KEY_COMPLETION_STATUS,
MediaConstants.DESCRIPTION_EXTRAS_VALUE_COMPLETION_STATUS_PARTIALLY_PLAYED)
extras.putDouble(
MediaConstants.DESCRIPTION_EXTRAS_KEY_COMPLETION_PERCENTAGE, 0.7)
val description =
MediaDescriptionCompat.Builder()
.setMediaId(/*...*/)
.setTitle(resources.getString(/*...*/))
.setExtras(extras)
.build()
return MediaBrowserCompat.MediaItem(description, /* flags */)
Java
import androidx.media.utils.MediaConstants;
Bundle extras = new Bundle();
extras.putLong(
MediaConstants.METADATA_KEY_IS_EXPLICIT,
MediaConstants.METADATA_VALUE_ATTRIBUTE_PRESENT);
extras.putInt(
MediaConstants.DESCRIPTION_EXTRAS_KEY_COMPLETION_STATUS,
MediaConstants.DESCRIPTION_EXTRAS_VALUE_COMPLETION_STATUS_PARTIALLY_PLAYED);
extras.putDouble(
MediaConstants.DESCRIPTION_EXTRAS_KEY_COMPLETION_PERCENTAGE, 0.7);
MediaDescriptionCompat description =
new MediaDescriptionCompat.Builder()
.setMediaId(/*...*/)
.setTitle(resources.getString(/*...*/))
.setExtras(extras)
.build();
return new MediaBrowserCompat.MediaItem(description, /* flags */);
Wenn Sie Indikatoren für ein Media-Element anzeigen möchten, das gerade wiedergegeben wird, deklarieren Sie Werte für METADATA_KEY_IS_EXPLICIT
oder EXTRA_DOWNLOAD_STATUS
im MediaMetadataCompat
Ihres mediaSession
.
In diesem Code-Snippet wird gezeigt, wie angegeben wird, dass der Song in der Wiedergabeansicht explizit ist und heruntergeladen wurde:
Kotlin
import androidx.media.utils.MediaConstants
mediaSession.setMetadata(
MediaMetadataCompat.Builder()
.putString(
MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE, "Song Name")
.putString(
MediaMetadataCompat.METADATA_KEY_DISPLAY_SUBTITLE, "Artist name")
.putString(
MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI,
albumArtUri.toString())
.putLong(
MediaConstants.METADATA_KEY_IS_EXPLICIT,
MediaConstants.METADATA_VALUE_ATTRIBUTE_PRESENT)
.putLong(
MediaDescriptionCompat.EXTRA_DOWNLOAD_STATUS,
MediaDescriptionCompat.STATUS_DOWNLOADED)
.build())
Java
import androidx.media.utils.MediaConstants;
mediaSession.setMetadata(
new MediaMetadataCompat.Builder()
.putString(
MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE, "Song Name")
.putString(
MediaMetadataCompat.METADATA_KEY_DISPLAY_SUBTITLE, "Artist name")
.putString(
MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI,
albumArtUri.toString())
.putLong(
MediaConstants.METADATA_KEY_IS_EXPLICIT,
MediaConstants.METADATA_VALUE_ATTRIBUTE_PRESENT)
.putLong(
MediaDescriptionCompat.EXTRA_DOWNLOAD_STATUS,
MediaDescriptionCompat.STATUS_DOWNLOADED)
.build());
Fortschrittsanzeige in der Ansicht „Entdecken“ während der Wiedergabe von Inhalten aktualisieren
Wie bereits erwähnt, können Sie mit dem Extra DESCRIPTION_EXTRAS_KEY_COMPLETION_PERCENTAGE
einen Fortschrittsbalken für teilweise wiedergegebene Inhalte in der Ansicht „Durchsuchen“ anzeigen. Wenn ein Nutzer jedoch die teilweise wiedergegebenen Inhalte weiter abspielt, wird die Anzeige mit der Zeit ungenau.
Damit die Fortschrittsanzeige in Android Auto und AAOS auf dem neuesten Stand bleibt, müssen Sie in MediaMetadataCompat
und PlaybackStateCompat
zusätzliche Informationen angeben, um laufende Inhalte mit Media-Elementen in der Ansicht „Durchsuchen“ zu verknüpfen.
Damit für ein Media-Element automatisch eine Fortschrittsanzeige aktualisiert wird, müssen die folgenden Anforderungen erfüllt sein:
Beim Erstellen muss die
MediaItem
DESCRIPTION_EXTRAS_KEY_COMPLETION_PERCENTAGE
in ihren Extras mit einem Wert zwischen0.0
und1.0
(einschließlich) senden.Die
MediaMetadataCompat
mussMETADATA_KEY_MEDIA_ID
mit einem Stringwert senden, der der Media-ID entspricht, die an dieMediaItem
übergeben wurde.Der
PlaybackStateCompat
muss ein Extra mit dem SchlüsselPLAYBACK_STATE_EXTRAS_KEY_MEDIA_ID
enthalten, der einem Stringwert entspricht, der mit der Media-ID übereinstimmt, die anMediaItem
übergeben wurde.
Dieses Code-Snippet zeigt, wie Sie angeben, dass das wiedergegebene Element mit einem Element in der Ansicht „Durchsuchen“ verknüpft ist:
Kotlin
import androidx.media.utils.MediaConstants
// When the MediaItem is constructed to show in the browse view.
// Suppose the item was 25% complete when the user launched the browse view.
val mediaItemExtras = Bundle()
mediaItemExtras.putDouble(
MediaConstants.DESCRIPTION_EXTRAS_KEY_COMPLETION_PERCENTAGE, 0.25)
val description =
MediaDescriptionCompat.Builder()
.setMediaId("my-media-id")
.setExtras(mediaItemExtras)
// ...and any other setters.
.build()
return MediaBrowserCompat.MediaItem(description, /* flags */)
// Elsewhere, when the user has selected MediaItem for playback.
mediaSession.setMetadata(
MediaMetadataCompat.Builder()
.putString(MediaMetadata.METADATA_KEY_MEDIA_ID, "my-media-id")
// ...and any other setters.
.build())
val playbackStateExtras = Bundle()
playbackStateExtras.putString(
MediaConstants.PLAYBACK_STATE_EXTRAS_KEY_MEDIA_ID, "my-media-id")
mediaSession.setPlaybackState(
PlaybackStateCompat.Builder()
.setExtras(playbackStateExtras)
// ...and any other setters.
.build())
Java
import androidx.media.utils.MediaConstants;
// When the MediaItem is constructed to show in the browse view.
// Suppose the item was 25% complete when the user launched the browse view.
Bundle mediaItemExtras = new Bundle();
mediaItemExtras.putDouble(
MediaConstants.DESCRIPTION_EXTRAS_KEY_COMPLETION_PERCENTAGE, 0.25);
MediaDescriptionCompat description =
new MediaDescriptionCompat.Builder()
.setMediaId("my-media-id")
.setExtras(mediaItemExtras)
// ...and any other setters.
.build();
return new MediaBrowserCompat.MediaItem(description, /* flags */);
// Elsewhere, when the user has selected MediaItem for playback.
mediaSession.setMetadata(
new MediaMetadataCompat.Builder()
.putString(MediaMetadata.METADATA_KEY_MEDIA_ID, "my-media-id")
// ...and any other setters.
.build());
Bundle playbackStateExtras = new Bundle();
playbackStateExtras.putString(
MediaConstants.PLAYBACK_STATE_EXTRAS_KEY_MEDIA_ID, "my-media-id");
mediaSession.setPlaybackState(
new PlaybackStateCompat.Builder()
.setExtras(playbackStateExtras)
// ...and any other setters.
.build());
P
Auch bei nicht abgespielten oder vollständig abgespielten Inhalten kann eine automatisch aktualisierte Fortschrittsanzeige angezeigt werden. Dies tritt auf, wenn die entsprechenden Media-Elemente das Extra DESCRIPTION_EXTRAS_KEY_COMPLETION_PERCENTAGE
mit dem Wert 0.0
(für nicht abgespielte) oder 1.0
(für vollständig abgespielte) enthalten. Nachdem der Nutzer diese Media-Elemente ausgewählt hat, wird der Fortschrittsbalken in Android Auto und AAOS über anderen Fortschrittsanzeigen eingeblendet.