탐색 가능 또는 재생 가능 항목을 사용하여 콘텐츠 계층 구조를 빌드한 후 콘텐츠 스타일을 적용하여 자동차에 항목이 표시되는 방식을 결정합니다. 다음 콘텐츠 스타일을 사용하세요.

그림 1. 목록 항목은 이미지보다 제목과 메타데이터를 우선시합니다.

그림 2. 그리드 항목에서는 제목 및 메타데이터보다 이미지의 우선순위가 더 높습니다.
기본 콘텐츠 스타일 설정
미디어 항목이 표시되는 방식에 전역 기본값을 설정할 수 있습니다. 이렇게 하려면 서비스의 onGetRoot
구현에서 반환된 BrowserRoot
추가 번들에 특정 상수를 포함하고 이러한 상수를 찾아 적절한 스타일을 결정하세요.
이러한 추가 항목은 번들에서 키로 사용할 수 있습니다.
DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_BROWSABLE
: 탐색 트리 내의 모든 탐색 가능 항목의 프레젠테이션 힌트입니다.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_PLAYABLE
: 탐색 트리 내의 모든 재생 가능 항목의 프레젠테이션 힌트입니다.
이러한 키는 다음 정수 상수 값에 매핑하여 이러한 항목의 표시에 영향을 줄 수 있습니다.
DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_LIST_ITEM
: 상응하는 항목이 목록 항목으로 표시됩니다.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_GRID_ITEM
: 상응하는 항목이 그리드 항목으로 표시됩니다.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_LIST_ITEM
: 상응하는 항목이 '카테고리' 목록 항목으로 표시됩니다. 일반 목록 항목과 유사하지만 항목 아이콘 주위에 여백이 적용됩니다. 이렇게 하면 작은 아이콘의 모양이 개선됩니다. 아이콘은 색조 조정이 가능한 벡터 드로어블이어야 합니다. 이 힌트는 탐색 가능한 항목에만 제공될 것으로 예상됩니다.DESCRIPTION_EXTRAS_VALUE_CONTENT_STYLE_CATEGORY_GRID_ITEM
: 상응하는 항목이 '카테고리' 그리드 항목으로 표시되며 일반 그리드 항목과 유사하지만 항목 아이콘 주위에 여백이 적용됩니다. 이렇게 하면 작은 아이콘의 모양이 개선됩니다. 아이콘은 색조 조정이 가능한 벡터 드로어블이어야 합니다. 이 힌트는 탐색 가능한 항목에만 제공될 것으로 예상됩니다.
이 코드 스니펫은 탐색 가능한 항목의 기본 콘텐츠 스타일을 그리드로 설정하고 재생 가능한 항목을 목록으로 설정하는 방법을 보여줍니다.
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);
}
항목별 콘텐츠 스타일 설정
탐색 가능한 미디어 항목의 하위 요소뿐만 아니라 모든 미디어 항목의 기본 콘텐츠 스타일을 재정의할 수 있습니다. 탐색 가능한 미디어 항목의 하위 요소 기본값을 재정의하려면 미디어 항목의 MediaDescription
에 추가 번들을 만들고 앞에서 언급한 동일한 힌트를 추가합니다.
DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_PLAYABLE
은 이 항목의 재생 가능한 하위 요소에 적용됩니다.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_BROWSABLE
은 이 항목의 탐색 가능한 하위 요소에 적용됩니다.
특정 미디어 항목 (하위 요소가 아님)의 기본값을 재정의하려면 미디어 항목의 MediaDescription
에 추가 번들을 만드세요. 그런 다음 DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_SINGLE_ITEM
키를 사용하여 힌트를 추가합니다. 위에서 설명한 같은 값을 사용하여 이 항목의 프레젠테이션을 지정합니다.
이 코드 스니펫은 항목 자체 및 하위 요소의 기본 콘텐츠 스타일을 재정의하는 탐색 가능한 MediaItem
을 만드는 방법을 보여줍니다. 항목 자체를 카테고리 목록 항목으로, 탐색 가능한 하위 요소를 목록 항목으로, 재생 가능한 하위 요소를 그리드 항목으로 스타일을 지정합니다.
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)
}
자바
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);
}
제목 힌트를 사용하여 항목 그룹화
관련 미디어 항목을 그룹화하려면 항목별 힌트를 사용하세요. 그룹의 모든 미디어 항목은 MediaDescription
에서 추가 번들을 선언해야 합니다. 이 번들에는 DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE
키와 동일한 문자열 값이 있는 매핑이 포함되어야 합니다. 그룹의 제목으로 사용되므로 이 문자열을 현지화합니다.
이 코드 스니펫은 하위 그룹 제목이 Songs
인 MediaItem
을 만드는 방법을 보여줍니다.
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*/)
}
자바
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*/);
}
앱은 함께 그룹화하려는 모든 미디어 항목을 연속된 블록으로 전달해야 합니다. 예를 들어 '노래'와 '앨범'이라는 두 미디어 항목 그룹을 같은 순서로 표시한다고 가정해 보겠습니다. 앱이 이 순서로 미디어 항목 5개를 전달하면 Android Auto와 AAOS는 이를 4개의 별도 그룹으로 해석합니다.
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs")
이 있는 미디어 항목 Aextras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Albums")
이 있는 미디어 항목 Bextras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs")
이 있는 미디어 항목 Cextras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs")
이 있는 미디어 항목 Dextras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Albums")
이 있는 미디어 항목 E
그 결과 다음과 같은 네 그룹이 생성됩니다.
- 미디어 항목 A가 포함된 '노래' 그룹 1
- 미디어 항목 B가 포함된 '앨범' 그룹 2
- 미디어 항목 C와 D가 포함된 '노래' 그룹 3
- 미디어 항목 E가 포함된 '앨범' 그룹 4
이러한 항목을 두 그룹으로 표시하려면 앱에서는 대신 다음 순서로 미디어 항목을 전달해야 합니다.
extras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs")
이 있는 미디어 항목 Aextras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs")
이 있는 미디어 항목 Cextras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Songs")
이 있는 미디어 항목 Dextras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Albums")
이 있는 미디어 항목 Bextras.putString(MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, "Albums")
이 있는 미디어 항목 E
추가 메타데이터 표시기 표시
추가 메타데이터 표시기를 포함하여 미디어 브라우저 트리의 콘텐츠와 재생 중 콘텐츠에 관한 한눈에 보는 정보를 제공할 수 있습니다.
탐색 트리에서 Android Auto와 AAOS는 항목과 연결된 추가 정보를 읽고 표시기를 표시합니다. 미디어 재생 중에 Android Auto와 AAOS는 미디어 세션의 메타데이터를 읽고 특정 상수를 찾아 어떤 표시기를 표시할지 결정합니다.

그림 3. 메타데이터가 포함된 재생 뷰

그림 4. 재생되지 않은 콘텐츠의 탐색 뷰
이러한 상수는 MediaItem
설명 추가 항목과 MediaMetadata
추가 항목에서 모두 사용할 수 있습니다.
EXTRA_DOWNLOAD_STATUS
: 항목의 다운로드 상태를 나타냅니다. 이 상수를 키로 사용합니다. 이 긴 상수가 가능한 값입니다.STATUS_DOWNLOADED
: 항목이 완전히 다운로드되었습니다.STATUS_DOWNLOADING
: 항목을 다운로드하는 중입니다.STATUS_NOT_DOWNLOADED
: 항목이 다운로드되지 않았습니다.
METADATA_KEY_IS_EXPLICIT
: 항목에 선정적인 콘텐츠가 포함되어 있음을 나타냅니다. 항목이 선정적이라고 나타내려면 이 상수를 키로 사용하고 긴METADATA_VALUE_ATTRIBUTE_PRESENT
를 값으로 사용합니다.
다음 상수는 MediaItem
설명 추가 항목에서만 사용할 수 있습니다.
DESCRIPTION_EXTRAS_KEY_COMPLETION_STATUS
: 긴 형식의 콘텐츠(예: 팟캐스트 에피소드, 오디오북)의 완료 상태를 나타냅니다. 이 상수를 키로 사용합니다. 이러한 정수 상수는 가능한 값입니다.DESCRIPTION_EXTRAS_VALUE_COMPLETION_STATUS_NOT_PLAYED
: 항목이 재생되지 않았습니다.DESCRIPTION_EXTRAS_VALUE_COMPLETION_STATUS_PARTIALLY_PLAYED
: 항목이 부분적으로 재생되었으며 현재 위치는 중간 부분입니다.DESCRIPTION_EXTRAS_VALUE_COMPLETION_STATUS_FULLY_PLAYED
: 항목이 완료되었습니다.
DESCRIPTION_EXTRAS_KEY_COMPLETION_PERCENTAGE
: 긴 형식의 콘텐츠에 관한 완료 진행 정도를 0.0에서 1.0(포함) 사이의 double로 나타냅니다. 이를 통해PARTIALLY_PLAYING
상태에 관한 자세한 정보를 제공하여 Android Auto 또는 AAOS에서 좀 더 의미 있는 진행률 표시기(예: 진행률 표시줄)를 표시할 수 있습니다. 이 추가 항목을 사용하는 경우 콘텐츠가 재생되는 동안 탐색 뷰의 진행률 표시줄 업데이트를 참고하여 처음 노출 후 이 표시기를 최신 상태로 유지하는 방법을 알아보세요.
사용자가 미디어 탐색 트리를 탐색하는 동안 표시기가 나타나게 하려면 이러한 상수 중 하나 이상을 포함하는 추가 번들을 만드세요.
그런 다음 번들을 MediaDescription.Builder.setExtras
메서드에 전달합니다.
이 스니펫은 70% 완료된 선정적인 미디어 항목의 표시기를 표시하는 방법을 보여줍니다.
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 */)
자바
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 */);
현재 재생 중인 미디어 항목의 표시기를 표시하려면 mediaSession
의 MediaMetadataCompat
에서 METADATA_KEY_IS_EXPLICIT
또는 EXTRA_DOWNLOAD_STATUS
의 값을 선언하면 됩니다.
이 코드 스니펫은 재생 뷰에 있는 노래의 가사가 음란하고 이 노래가 다운로드된 상태임을 나타내는 방법을 보여줍니다.
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())
자바
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());
콘텐츠가 재생되는 동안 탐색 뷰의 진행률 표시줄 업데이트
앞서 설명한 대로 DESCRIPTION_EXTRAS_KEY_COMPLETION_PERCENTAGE
추가 항목을 사용하여 탐색 뷰에서 부분 재생 콘텐츠의 진행률 표시줄을 표시할 수 있습니다. 그러나 사용자가 부분 재생 콘텐츠를 계속 재생하면 시간이 지나면서 이 표시기는 부정확해집니다.
Android Auto와 AAOS에서 진행률 표시줄을 최신 상태로 유지하려면 MediaMetadataCompat
및 PlaybackStateCompat
에 추가 정보를 제공하여 진행 중인 콘텐츠를 탐색 뷰의 미디어 항목에 연결하세요.
미디어 항목에 자동으로 업데이트되는 진행률 표시줄을 적용하려면 다음 요구사항이 충족되어야 합니다.
생성될 때
MediaItem
은0.0
에서1.0
(포함) 사이의 값과 함께 추가 항목의DESCRIPTION_EXTRAS_KEY_COMPLETION_PERCENTAGE
를 전송해야 합니다.MediaMetadataCompat
는MediaItem
에 전달된 미디어 ID와 동일한 문자열 값과 함께METADATA_KEY_MEDIA_ID
를 전송해야 합니다.PlaybackStateCompat
는MediaItem
에 전달된 미디어 ID와 동일한 문자열 값에 매핑되는 키PLAYBACK_STATE_EXTRAS_KEY_MEDIA_ID
와 함께 추가 항목을 포함해야 합니다.
이 코드 스니펫은 재생 중인 항목이 탐색 뷰의 항목에 연결되어 있다고 표시하는 방법을 보여줍니다.
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())
자바
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
재생되지 않은 콘텐츠나 완전히 재생된 콘텐츠에도 자동으로 업데이트되는 진행률 표시줄을 표시할 수 있습니다. 이는 상응하는 미디어 항목에 0.0
(재생되지 않은 콘텐츠) 또는 1.0
(완전히 재생된 콘텐츠) 값과 함께 DESCRIPTION_EXTRAS_KEY_COMPLETION_PERCENTAGE
추가 항목이 포함되어 있는 경우에 발생합니다. 사용자가 이러한 미디어 항목을 선택하면 Android Auto 및 AAOS에서는 다른 진행률 표시기보다 진행률 표시줄을 표시합니다.