显示“正在播放”卡片

播放音频的 TV 应用可以在用户返回主屏幕后继续播放音频,或者 切换到其他应用。为此,应用必须在住宅中提供“正在播放”卡 屏幕。通过此卡片,用户可了解音频的来源并返回您的应用, 控制媒体播放。

每次 “MediaSession”现为 目前,Android 框架会在主屏幕上显示“正在播放”卡片。卡片 包括专辑封面、名称和应用图标等媒体元数据。当用户选择该卡片时 系统就会打开应用

“闻曲知音”卡片

实现媒体会话后,请设置 会话变为活跃状态并请求音频焦点,系统会显示“正在播放”卡片。

注意:“正在播放”卡片仅针对媒体显示FLAG_HANDLES_TRANSPORT_CONTROLS 标志已设置。此标志已在 API 级别 26 中弃用。不过,为实现向后兼容性,在旧款设备上可能仍需使用此标记。

在以下情况下,该卡会从启动器屏幕中移除: setActive(false) 调用会停用媒体会话,或在其他应用启动媒体播放时停用。如果播放为 已完全停止且无活动的媒体,请停用媒体会话 。如果播放被暂停,请在延迟一段时间后停用媒体会话。 通常在 5 到 30 分钟内

更新银行卡

每当您的应用在 MediaSession 中更新播放状态时, “正在播放”卡片会更新,以显示当前媒体的状态。要了解如何操作,请参阅 更新播放状态

同样,您的应用也可以更新 MediaMetadata可提供 “正在播放”卡片中会显示与当前媒体有关的信息,例如标题、副标题、 以及各种图标要了解如何操作,请参阅 更新媒体元数据

响应用户操作

当用户选择“正在播放”卡片时,系统会打开拥有该卡片的应用 会话。如果您的应用提供 PendingIntentsetSessionActivity(), 系统会启动您指定的 activity,如以下代码段所示。否则, 系统将打开默认系统 intent。您指定的 Activity 必须提供播放控件, 让用户可以暂停或停止播放

Kotlin

val pi: PendingIntent = Intent(context, MyActivity::class.java).let { intent ->
    PendingIntent.getActivity(
            context, 99 /*request code*/,
            intent,
            PendingIntent.FLAG_UPDATE_CURRENT
    )
}
session.setSessionActivity(pi)

Java

Intent intent = new Intent(context, MyActivity.class);
PendingIntent pi = PendingIntent.getActivity(context, 99 /*request code*/,
        intent, PendingIntent.FLAG_UPDATE_CURRENT);
session.setSessionActivity(pi);

可接受的用例

只有当用户希望继续播放音频时,才应使用“正在播放”卡片 在你离开应用时在后台播放音乐视频播放或游戏声音应始终 暂停应用,除非您的应用集成并符合画中画模式的要求。