Göz atılabilir veya oynatılabilir öğeleri kullanarak içerik hiyerarşinizi oluşturduktan sonra, bu öğelerin arabada nasıl gösterileceğini belirlemek için içerik stilleri uygulayın. Aşağıdaki içerik stillerini kullanın:
1.şekil Liste öğelerinde başlıklar ve meta veriler, resimlere göre önceliklidir.
Şekil 2. Izgara öğelerinde resimlere başlık ve meta verilere göre öncelik verilir.
Varsayılan içerik stillerini ayarlama
Medya öğelerinizin nasıl görüntüleneceğine dair genel varsayılanlar ayarlayabilirsiniz. Bunu yapmak için hizmetinizin onGetRoot uygulamasının döndürdüğü BrowserRoot ekler paketine belirli sabitleri ekleyin ve uygun stili belirlemek için bu sabitleri arayın.
Bu ekstralar pakette anahtar olarak kullanılabilir:
DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_BROWSABLE: Göz atma ağacındaki tüm göz atılabilir öğeler için sunum ipucu.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_PLAYABLE: Göz atma ağacındaki tüm oynatılabilir öğeler için sunu ipucu.
Bu anahtarlar, öğelerin sunumunu etkilemek için aşağıdaki tam sayı sabit değerleriyle eşlenebilir:
DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_LIST_ITEM: Liste öğeleri olarak sunulan ilgili öğeler.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_GRID_ITEM: Tablo öğeleri olarak sunulan ilgili öğeler.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_LIST_ITEM: Normal liste öğelerine benzer şekilde "kategori" liste öğeleri olarak sunulan karşılık gelen öğeler. Ancak öğelerin simgelerinin etrafına kenar boşlukları uygulanır. Bu, küçük simgelerin görünümünü iyileştirir. Simgeler, renk tonu uygulanabilen vektör çizimleri olmalıdır. Bu ipucunun yalnızca göz atılabilir öğeler için sağlanması beklenir.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_GRID_ITEM: İlgili öğeler "kategori" ızgara öğeleri olarak sunulur ve normal ızgara öğelerine benzer ancak öğelerin simgelerinin etrafına kenar boşlukları uygulanır. Bu, küçük simgelerin görünümünü iyileştirir. Simgeler, renk tonu uygulanabilen vektör çizimleri olmalıdır. Bu ipucunun yalnızca göz atılabilir öğeler için sağlanması beklenir.
Bu kod snippet'inde, göz atılabilir öğeler için varsayılan içerik stilinin ızgara, oynatılabilir öğeler için ise liste olarak nasıl ayarlanacağı gösterilmektedir:
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);
}
Öğe başına içerik stilleri ayarlama
Göz atılabilir medya öğelerinin alt öğeleri ve tüm medya öğeleri için varsayılan içerik stilini geçersiz kılabilirsiniz. Göz atılabilir bir medya öğesinin alt öğeleri için varsayılanı geçersiz kılmak üzere medya öğesinin MediaDescription bölümünde bir ekstralar paketi oluşturun ve daha önce bahsedilen ipuçlarını ekleyin:
DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_PLAYABLE, öğenin oynatılabilir alt öğeleri için geçerlidir.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_BROWSABLE, öğenin göz atılabilir alt öğeleri için geçerlidir.
Belirli bir medya öğesi (alt öğeleri değil) için varsayılanı geçersiz kılmak istiyorsanız medya öğesinin MediaDescription bölümünde bir ekstralar paketi oluşturun. Ardından, DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_SINGLE_ITEM tuşuyla bir ipucu ekleyin. Öğenin sunumunu belirtmek için daha önce açıklanan değerleri kullanın.
Bu kod snippet'inde, kendisi ve alt öğeleri için varsayılan içerik stilini geçersiz kılan, göz atılabilir bir MediaItem öğesinin nasıl oluşturulacağı gösterilmektedir. Kendisini kategori listesi öğesi, göz atılabilir alt öğelerini liste öğeleri ve oynatılabilir alt öğelerini de ızgara öğeleri olarak biçimlendirir.
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);
}
Başlık ipuçlarını kullanarak öğeleri gruplandırma
İlgili medya öğelerini gruplandırmak için öğe başına ipucu kullanın. Bir gruptaki her medya öğesi, MediaDescription içinde bir ekler paketi bildirmelidir. Bu pakette, DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE anahtarıyla eşleme ve aynı dize değeri bulunmalıdır. Bu dize, grubun başlığı için kullanıldığından yerelleştirilmelidir.
Bu kod snippet'inde, Songs alt grup başlığına sahip bir MediaItem öğesinin nasıl oluşturulacağı gösterilmektedir:
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*/);
}
Uygulamanız, birlikte gruplandırmak istediğiniz tüm medya öğelerini bitişik bir blok olarak geçirmelidir. Örneğin, medya öğelerini "Şarkılar" ve "Albümler" olmak üzere iki grupta ve bu sırayla göstermeyi düşünün. Uygulamanız bu sırayla beş medya öğesi iletirse Android Auto ve AAOS bunları dört ayrı grup olarak yorumlar:
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs")içeren A medya öğesiextras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Albums")içeren B medya öğesiextras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs")içeren C medya öğesiextras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs")ile medya öğesi Dextras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Albums")içeren E medya öğesi
Bu durum, şu dört grupla sonuçlanır:
- "Şarkılar" adlı 1. grup, A medya öğesini içeriyor
- Medya öğesi B'yi içeren "Albümler" adlı 2. grup
- C ve D medya öğelerini içeren "Şarkılar" adlı 3. grup
- "Albümler" adlı ve E medya öğesini içeren 4. grup
Bu öğeleri iki grupta göstermek için uygulamanız medya öğelerini şu sırayla iletmelidir:
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs")içeren A medya öğesiextras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs")içeren C medya öğesiextras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs")ile medya öğesi Dextras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Albums")içeren B medya öğesiextras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Albums")içeren E medya öğesi
Ek meta veri göstergelerini görüntüleme
Medya tarayıcı ağacındaki ve oynatma sırasındaki içeriklerle ilgili bilgileri bir bakışta görmek için ek meta veri göstergeleri ekleyebilirsiniz.
Göz atma ağacında Android Auto ve AAOS, bir öğeyle ilişkili ekstraları okur ve göstergeleri görüntüler. Medya oynatma sırasında Android Auto ve AAOS, medya oturumunun meta verilerini okur ve hangi göstergelerin görüntüleneceğini belirlemek için belirli sabitleri arar.
3.Şekil Meta verilerle oynatma görünümü.
Şekil 4. Oynatılmamış içerikler için göz atma görünümü.
Bu sabitler hem MediaItem açıklama ekstralarında hem de MediaMetadata ekstralarında kullanılabilir:
EXTRA_DOWNLOAD_STATUS: Öğenin indirme durumunu gösterir. Anahtar olarak bu sabiti kullanın. Bu uzun sabitler olası değerlerdir:STATUS_DOWNLOADED: Öğe tamamen indirilmiştir.STATUS_DOWNLOADING: Öğe indiriliyordur.STATUS_NOT_DOWNLOADED: Öğe indirilmemiştir.
METADATA_KEY_IS_EXPLICIT: Öğenin uygunsuz içerik barındırdığını gösterir. Bir öğenin uygunsuz olduğunu belirtmek için anahtar olarak bu sabiti, değer olarak ise uzunMETADATA_VALUE_ATTRIBUTE_PRESENTdeğerini kullanın.
Bu sabitler yalnızca MediaItem açıklama metni ek açıklamalarında kullanılabilir:
DESCRIPTION_EXTRAS_KEY_COMPLETION_STATUS: Podcast bölümleri ve sesli kitaplar gibi uzun içeriklerin tamamlanma durumunu gösterir. Anahtar olarak bu sabiti kullanın. Bu tam sayı sabitleri olası değerlerdir:DESCRIPTION_EXTRAS_VALUE_COMPLETION_STATUS_NOT_PLAYED: Öğe oynatılmamıştır.DESCRIPTION_EXTRAS_VALUE_COMPLETION_STATUS_PARTIALLY_PLAYED: Öğe kısmen oynatılmış ve mevcut konum ortada bir yerdedir.DESCRIPTION_EXTRAS_VALUE_COMPLETION_STATUS_FULLY_PLAYED: Öğe tamamlanmıştır.
DESCRIPTION_EXTRAS_KEY_COMPLETION_PERCENTAGE: Uzun biçimli içerikteki tamamlanma ilerleme durumunu 0,0 ile 1,0 arasında (bu değerler dahil) bir çift olarak gösterir. Bu,PARTIALLY_PLAYINGdurumu hakkında daha fazla bilgi sağlar. Böylece Android Auto veya AAOS, ilerleme çubuğu gibi daha anlamlı bir ilerleme göstergesi görüntüleyebilir. Bu ek özelliği kullanıyorsanız ilk gösterimden sonra bu göstergeyi nasıl güncel tutacağınızı öğrenmek için İçerik oynatılırken göz atma görünümündeki ilerleme çubuğunu güncelleme başlıklı makaleyi inceleyin.
Kullanıcı medya göz atma ağacına göz atarken görünen göstergeleri görüntülemek için bu sabitlerden birini veya daha fazlasını içeren bir ekstralar paketi oluşturun.
Ardından bu paketi MediaDescription.Builder.setExtras yöntemine iletin.
Bu snippet'te, %70'i tamamlanmış bir uygunsuz içerik öğesi için göstergelerin nasıl görüntüleneceği gösterilmektedir:
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 */);
Şu anda oynatılan bir medya öğesi için göstergeleri görüntülemek üzere mediaSession öğenizin MediaMetadataCompat bölümünde METADATA_KEY_IS_EXPLICIT veya EXTRA_DOWNLOAD_STATUS için değerler bildirin.
Bu kod snippet'inde, oynatma görünümündeki şarkının uygunsuz içerikli ve indirilmiş olduğunu belirtme şekli gösterilmektedir:
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());
İçerik oynatılırken göz atma görünümündeki ilerleme çubuğunu güncelleme
Daha önce de belirtildiği gibi, göz atma görünümünde kısmen oynatılan içeriklerin ilerleme çubuğunu göstermek için DESCRIPTION_EXTRAS_KEY_COMPLETION_PERCENTAGE ekstrasını kullanabilirsiniz. Ancak kullanıcı, kısmen oynatılan içeriği oynatmaya devam ederse bu gösterge zamanla yanlış hale gelir.
Android Auto ve AAOS'in ilerleme çubuğunu güncel tutması için MediaMetadataCompat ve PlaybackStateCompat içinde ek bilgiler sağlayarak devam eden içerikleri göz atma görünümündeki medya öğelerine bağlayın.
Bir medya öğesinin otomatik olarak güncellenen ilerleme çubuğuna sahip olması için şu şartların karşılanması gerekir:
Oluşturulduğunda
MediaItem, ekstralarındaDESCRIPTION_EXTRAS_KEY_COMPLETION_PERCENTAGEdeğerini0.0ile1.0arasında (bu değerler dahil) göndermelidir.MediaMetadataCompat,MediaItem'ya iletilen medya kimliğine eşit bir dize değeriyleMETADATA_KEY_MEDIA_IDgöndermelidir.PlaybackStateCompat,MediaItem'ya iletilen medya kimliği ile eşit bir dize değerine eşlenenPLAYBACK_STATE_EXTRAS_KEY_MEDIA_IDanahtarına sahip bir ek içermelidir.
Bu kod snippet'inde, oynatılan öğenin göz atma görünümündeki bir öğeye nasıl bağlandığı gösterilmektedir:
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
Oynatılmamış veya tamamen oynatılmış içeriklerde bile otomatik olarak güncellenen bir ilerleme çubuğu gösterilebilir. Bu durum, ilgili medya öğeleri DESCRIPTION_EXTRAS_KEY_COMPLETION_PERCENTAGE ekini 0.0 (oynatılmamış) veya 1.0 (tamamen oynatılmış) değeriyle içeriyorsa ortaya çıkar. Kullanıcı bu medya öğelerini seçtikten sonra Android Auto ve AAOS, ilerleme çubuğunu diğer ilerleme göstergelerinin üzerinde gösterir.