Android 13부터 시스템 UI의 미디어 컨트롤에는 작업 버튼과 원격 재생의 업데이트가 포함됩니다. 이러한 변경사항을 통해 스마트폰과 태블릿의 미디어 컨트롤 환경이 더 세밀해지고 기기 간 미디어 전송이 더 원활해집니다.
미디어 컨트롤 업데이트
이 섹션에서는 작업 버튼과 원격 재생에 관한 Android 13의 미디어 컨트롤 업데이트를 설명합니다.
작업 버튼 변경사항
사용자가 미디어를 재생하는 앱의 다양한 미디어 컨트롤 세트에 액세스할 수 있도록 Android 13의 미디어 컨트롤에 있는 작업 버튼은 PlaybackState 작업 상태에서 파생됩니다.
이 변경으로 MediaDataManager#createActionsFromState 함수는 PlaybackState 작업 상태에 따라 작업 버튼 정보를 생성합니다.
이는 Auto, 어시스턴트, Wear 등의 다른 Android 플랫폼에서 미디어 컨트롤이 렌더링되는 방식과 일치합니다.
이에 반해 Android 12에서는 미디어 컨트롤의 작업 버튼이 MediaStyle 알림에 추가된 알림 작업에 의해 결정됩니다.
다양한 표면에서 일관된 미디어 환경을 제공하기 위해 Android 13부터 새 시스템 API Notification#setRemotePlaybackInfo를 추가하여 원격 재생을 위한 미디어 컨트롤 시스템 UI의 미디어 알림을 표시합니다. 이 API를 사용하면 알림을 게시하는 시스템 앱에서 다음을 실행할 수 있습니다.
원격 기기에서 시작된 미디어의 정보 및 기능을 미디어 컨트롤의 기본 출력 전환기에 제공합니다.
필요한 경우 출력 전환기 어포던스를 교체합니다.
이 알림을 사용하는 시스템 앱에는 MEDIA_CONTENT_CONTROL 권한이 있어야 합니다.
OEM에 원격 미디어 재생 알림을 게시하는 시스템 앱이 있는 경우 앱은 MEDIA_CONTENT_CONTROL 권한이 있는 한 알림을 위해 선택적으로 setRemotePlaybackInfo를 호출할 수 있습니다. 그러나 이는 필수사항이 아니며 파트너는 맞춤설정하지 않아도 됩니다.
미디어 컨트롤 검증
시스템 UI의 미디어 컨트롤을 테스트하려면 수동 테스트를 실행하여 다음 사항을 확인하세요.
권장사항에 관해 알아보려면 새로운 CDD 요구사항[3.8.3.1/H-1-SR]을 참고하세요.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2024-02-01(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2024-02-01(UTC)"],[],[],null,["# Media controls in System UI\n\nStarting in Android 13, media controls in System UI\ncontain updates to action buttons and remote playback. These changes support a\nmore polished media control experience on phones and tablets, and offer seamless\nmedia transfers across devices.\n\nUpdates to media controls\n-------------------------\n\nThis section describes the updates made to media controls in Android 13\nfor action buttons and remote playback.\n\n### Action button changes\n\nTo ensure that users can access a rich set of media controls for apps playing\nmedia, action buttons on media controls for Android 13\nare derived from the [`PlaybackState`](https://developer.android.com/reference/android/media/session/PlaybackState)\naction states.\nWith this change, the function [`MediaDataManager#createActionsFromState`](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt#811)\ngenerates action button information based on the `PlaybackState` action state.\nThis aligns with how media controls are rendered in other Android platforms such\nas Auto, Assistant, and Wear.\n\nIn contrast, in Android 12, the action buttons on media\ncontrols were determined by [notification actions](https://developer.android.com/reference/android/app/Notification.Action)\nadded to a [`MediaStyle`](https://developer.android.com/reference/android/app/Notification.MediaStyle)\nnotification.\n| **Note:** For backward compatibility, System UI continues to provide an alternate layout that uses notification actions for apps that don't update to target Android 13, or that don't include `PlaybackState` information.\n\nFor a summary of the app-compatible changes for the action button updates, see\n[`StatusBarManager`](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/core/java/android/app/StatusBarManager.java#527).\n\n### Remote playback API\n\nTo deliver a cohesive media experience across a variety of surfaces, starting\nwith Android 13, a new system API [`Notification#setRemotePlaybackInfo`](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/core/java/android/app/Notification.java#9096)\nis added to mark media notifications on the media control System UI for remote\nplayback. This API lets system apps that post the notifications do the\nfollowing:\n\n- Provide information and functionality for media originating on a remote device to the default output switcher on the media control.\n- Replace the output switcher affordance if necessary.\n\nSystem apps that use this notification must have the `MEDIA_CONTENT_CONTROL`\npermission.\n\nThe [`Notification#setRemotePlaybackInfo`](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/core/java/android/app/Notification.java#9096) API also adds the\nfollowing [`extras`](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt#678)\nto determine the name, icon, and intent of the remote playback device:\n\n- `Notification#EXTRA_MEDIA_REMOTE_DEVICE`\n- `Notification#EXTRA_MEDIA_REMOTE_ICON`\n- `Notification#EXTRA_MEDIA_REMOTE_INTENT`\n\nWith this information, System UI can replace the default output switcher chip\ndevice information and add the media control for remote playback to the end of\nthe list of local media controls.\n\nImplementation of media control\n-------------------------------\n\nOEMs must be aware of this change to default behavior, because it affects how\nmedia controls for apps are generated. OEMs must also ensure that the new system\nAPI works as applicable in their output switcher affordance.\n\nOEMs aren't required to make any changes and can use the\n[default implementation](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/packages/SystemUI/src/com/android/systemui/media/) in AOSP.\n\nCustomization of remote playback\n--------------------------------\n\nIn cases where the OEM has a system app that posts remote media playback\nnotifications, the app can optionally call `setRemotePlaybackInfo` for\nnotification as long as it has been granted the `MEDIA_CONTENT_CONTROL`\npermission. However, this isn't a requirement and the partner can choose not to\ncustomize.\n\nValidation of media control\n---------------------------\n\nTo test media control in System UI, run a manual test to validate the following:\n\n- The buttons function as intended while playing media from an app.\n- The output switcher displays the correct device information.\n\nUse the following tests to validate the remote playback API:\n\n- CTS tests in [`NotificationManagerTest`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/tests/app/src/android/app/cts/NotificationManagerTest.java), such as [`testMediaStyleRemotePlayback_noPermission`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/tests/app/src/android/app/cts/NotificationManagerTest.java#3605) and [`testMediaStyleRemotePlayback_hasPermission`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/tests/app/src/android/app/cts/NotificationManagerTest.java#3629).\n- Unit tests under [`com.android.systemui.media`](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/packages/SystemUI/tests/src/com/android/systemui/media/).\n\nRefer to the new [CDD requirement](/docs/compatibility/13/android-13-cdd#223_software) \\[3.8.3.1/H-1-SR\\]\nfor recommendations.\n| **Note:** A new [`MEDIA_SESSION_ACTIONS`](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/packages/SystemUI/src/com/android/systemui/flags/Flags.java#154) flag is used only for testing. It enables `PlaybackState` actions for all apps and is set to off by default. Turning the flag on for apps that aren't updated to target Android 13 can cause the media controls to break if the appropriate `PlaybackState` isn't set."]]