Nachdem Sie Ihre Inhaltshierarchie mit durchsuchbaren oder abspielbaren Elementen erstellt haben, wenden Sie Inhaltsstile an, 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 haben Bilder Vorrang vor Titeln und Metadaten.
Standardinhaltsstile festlegen
Sie können globale Standardeinstellungen für die Anzeige Ihrer Media-Elemente festlegen. Fügen Sie dazu
bestimmte Konstanten in das BrowserRoot Extras-Bundle ein, das von der
Implementierung Ihres onGetRoot Dienstes zurückgegeben wird, und suchen Sie nach diesen Konstanten,
um den entsprechenden Stil zu bestimmen.
Diese Extras können als Schlüssel im Bundle verwendet werden:
DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_BROWSABLE: Ein Präsentationshinweis für alle durchsuchbaren Elemente in der Suchstruktur.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_PLAYABLE: Ein Präsentationstipp für alle abspielbaren Elemente in der Suchstruktur.
Diese Schlüssel können den folgenden ganzzahligen Konstantenwerten zugeordnet werden, um die Präsentation dieser Elemente zu beeinflussen:
DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_LIST_ITEM: Entsprechende Elemente werden als Listenelemente präsentiert.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_GRID_ITEM: Entsprechende Elemente werden als Rasterelemente präsentiert.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_LIST_ITEM: Entsprechende Elemente werden als Listenelemente der Kategorie präsentiert, ähnlich wie normale Listenelemente, aber um die Symbole der Elemente werden Ränder angewendet. Dadurch wird das Erscheinungsbild kleiner Symbole verbessert. Symbole müssen Vektorgrafiken sein, deren Farbe geändert werden kann. Dieser Hinweis sollte nur für durchsuchbare Elemente angegeben werden.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_GRID_ITEM: Entsprechende Elemente werden als Rasterelemente der Kategorie präsentiert, ähnlich wie normale Rasterelemente, aber um die Symbole der Elemente werden Ränder angewendet. Dadurch wird das Erscheinungsbild kleiner Symbole verbessert. Die Symbole müssen Vektorgrafiken sein, deren Farbe geändert werden kann. Dieser Hinweis sollte nur für durchsuchbare Elemente angegeben werden.
Dieses Code-Snippet zeigt, wie Sie den Standardinhaltsstil 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 pro Element festlegen
Sie können den Standardinhaltsstil für alle Nachfolger eines durchsuchbaren Media-Elements sowie für alle Media-Elemente überschreiben. Wenn Sie den Standardstil für die Nachfolgerelemente eines blätterbaren Mediendatei-Elements überschreiben möchten, erstellen Sie ein Extras-Bundle in der MediaDescription des Mediendatei-Elements und fügen Sie die gleichen zuvor erwähnten Hinweise hinzu:
DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_PLAYABLEgilt für die abspielbaren Nachfolger dieses Elements.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_BROWSABLEgilt für die durchsuchbaren Nachfolgerelemente dieses Elements.
Wenn Sie den Standardstil für ein bestimmtes Media-Element (nicht für seine Nachfolger) überschreiben möchten, erstellen Sie ein Extras-Bundle in der MediaDescription des Media-Elements. Fügen Sie dann einen Hinweis
mit dem Schlüssel DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_SINGLE_ITEM hinzu. Verwenden Sie die gleichen Werte wie oben beschrieben, um die Präsentation dieses Elements anzugeben.
Dieses Code-Snippet zeigt, wie Sie ein durchsuchbares MediaItem erstellen, das den Standardinhaltsstil für sich selbst und seine Nachfolgerelemente überschreibt. Es wird als Listenelement der Kategorie, seine durchsuchbaren Nachfolgerelemente als Listenelemente und seine abspielbaren Nachfolgerelemente als Rasterelemente formatiert.
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 mit Titelhinweisen gruppieren
Wenn Sie ähnliche Media-Elemente gruppieren möchten, verwenden Sie einen Hinweis pro Element. Für jedes Media-Element in einer Gruppe muss in der 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 String
Wert enthalten. Lokalisieren Sie diesen String, da er für den Titel der Gruppe verwendet wird.
Dieses Code-Snippet zeigt, wie Sie ein MediaItem mit der Untergruppentitel 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 „Albums“. Wenn Ihre App fünf Media-Elemente in dieser Reihenfolge übergibt, werden sie von Android Auto und AAOS als vier separate Gruppen interpretiert:
- Media-Element A mit
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs") - Media-Element B mit
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Albums") - Media-Element C mit
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs") - Media-Element D mit
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs") - Media-Element E mit
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Albums")
Das führt zu diesen vier Gruppen:
- Gruppe 1 mit dem Namen „Songs“ und dem Media-Element A
- Gruppe 2 mit dem Namen „Albums“ und dem Media-Element B
- Gruppe 3 mit dem Namen „Songs“ und den Media-Elementen C und D
- Gruppe 4 mit dem Namen „Albums“ und dem Media-Element E
Wenn Sie diese Elemente in zwei Gruppen anzeigen möchten, muss Ihre App die Media-Elemente stattdessen in dieser Reihenfolge übergeben:
- Media-Element A mit
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs") - Media-Element C mit
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs") - Media-Element D mit
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs") - Media-Element B mit
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Albums") - Media-Element 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 Suchstruktur des Media-Browsers und während der Wiedergabe zu erhalten.
In der Suchstruktur lesen Android Auto und AAOS die mit einem Element verknüpften Extras und zeigen die Indikatoren an. Während der Medienwiedergabe lesen Android Auto und AAOS die Metadaten für die Mediensitzung und suchen nach bestimmten Konstanten, um zu bestimmen, welche Indikatoren angezeigt werden sollen.
Abbildung 3 : Wiedergabeansicht mit Metadaten.
Abbildung 4 : Suchansicht für nicht wiedergegebene Inhalte.
Diese Konstanten können sowohl in den Beschreibungsextras von MediaItem als auch in den Extras von MediaMetadata 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: Das Element wurde vollständig heruntergeladen.STATUS_DOWNLOADING: Das Element wird gerade heruntergeladen.STATUS_NOT_DOWNLOADED: Das Element wurde nicht heruntergeladen.
METADATA_KEY_IS_EXPLICIT: Gibt an, dass das Element explizite Inhalte enthält. Wenn Sie angeben möchten, dass ein Element explizit ist, verwenden Sie diese Konstante als Schlüssel und die langeMETADATA_VALUE_ATTRIBUTE_PRESENTals Wert.
Diese Konstanten können nur in den Beschreibungsextras von MediaItem verwendet werden:
DESCRIPTION_EXTRAS_KEY_COMPLETION_STATUS: Gibt den Abschlussstatus von langen Inhalten wie Podcastfolgen und Hörbüchern an. Verwenden Sie diese Konstante als Schlüssel. Diese ganzzahligen Konstanten sind mögliche Werte:DESCRIPTION_EXTRAS_VALUE_COMPLETION_STATUS_NOT_PLAYED: Das Element wurde nicht wiedergegeben.DESCRIPTION_EXTRAS_VALUE_COMPLETION_STATUS_PARTIALLY_PLAYED: Das Element wurde teilweise wiedergegeben und die aktuelle Position liegt irgendwo in der Mitte.DESCRIPTION_EXTRAS_VALUE_COMPLETION_STATUS_FULLY_PLAYED: Das Element wurde vollständig wiedergegeben.
DESCRIPTION_EXTRAS_KEY_COMPLETION_PERCENTAGE: Gibt den Abschlussfortschritt für lange Inhalte als Double zwischen 0,0 und 1,0 an. Dadurch erhalten Sie weitere Informationen zum StatusPARTIALLY_PLAYING, sodass Android Auto oder AAOS einen aussagekräftigeren Fortschrittsindikator wie eine Fortschrittsleiste anzeigen können. Wenn Sie dieses Extra verwenden, finden Sie unter Fortschrittsleiste in der Suchansicht während der Wiedergabe von Inhalten aktualisieren Informationen dazu, wie Sie diesen Indikator nach dem ersten Eindruck auf dem neuesten Stand halten.
Wenn Sie Indikatoren anzeigen möchten, die eingeblendet werden, während der Nutzer in der Suchstruktur des Media-Browsers sucht, erstellen Sie ein Extras-Bundle, das eine oder mehrere dieser Konstanten enthält.
Übergeben Sie dieses Bundle dann an die Methode MediaDescription.Builder.setExtras.
Dieses Code-Snippet zeigt, 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 in der MediaMetadataCompat Ihrer mediaSession.
Dieses Code-Snippet zeigt, wie Sie angeben, 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());
Fortschrittsleiste in der Suchansicht während der Wiedergabe von Inhalten aktualisieren
Wie bereits erwähnt, können Sie das
DESCRIPTION_EXTRAS_KEY_COMPLETION_PERCENTAGE Extra verwenden, um in der Suchansicht eine Fortschritt
sleiste für teilweise wiedergegebene Inhalte anzuzeigen. Wenn ein Nutzer die teilweise wiedergegebenen Inhalte jedoch weiter abspielt, wird dieser Indikator mit der Zeit ungenau.
Damit Android Auto und AAOS die Fortschrittsleiste auf dem neuesten Stand halten, geben Sie in MediaMetadataCompat und PlaybackStateCompat zusätzliche Informationen an, um laufende Inhalte mit Media-Elementen in der Suchansicht zu verknüpfen.
Damit für ein Media-Element eine automatisch aktualisierte Fortschrittsleiste angezeigt wird, müssen die folgenden Anforderungen erfüllt sein:
Beim Erstellen muss das
MediaItemin seinen ExtrasDESCRIPTION_EXTRAS_KEY_COMPLETION_PERCENTAGEmit einem Wert zwischen0.0und1.0senden.Die
MediaMetadataCompatmussMETADATA_KEY_MEDIA_IDmit einem Stringwert senden, der der an dasMediaItemübergebene Media-ID entspricht.Die
PlaybackStateCompatmuss ein Extra mit dem SchlüsselPLAYBACK_STATE_EXTRAS_KEY_MEDIA_IDenthalten, das einem Stringwert entspricht, der der an dasMediaItemübergebene Media-ID entspricht.
Dieses Code-Snippet zeigt, wie Sie angeben, dass das wiedergegebene Element mit einem Element in der Suchansicht 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 für nicht wiedergegebene oder vollständig wiedergegebene Inhalte kann eine automatisch aktualisierte Fortschrittsleiste angezeigt werden. Das ist der Fall, wenn die entsprechenden Media-Elemente das Extra DESCRIPTION_EXTRAS_KEY_COMPLETION_PERCENTAGE mit dem Wert 0.0 (für nicht wiedergegeben) oder 1.0 (für vollständig wiedergegeben) enthalten. Nachdem der Nutzer diese Media-Elemente ausgewählt hat, zeigen Android Auto und AAOS die Fortschrittsleiste über anderen Fortschrittsindikatoren an.