顯示「聽聲辨曲」資訊卡

在啟動器後方或背景播放媒體時,電視應用程式必須顯示「現正播放」資訊卡。這張資訊卡可讓使用者返回目前正在播放媒體的應用程式。

有運作中的 MediaSession 時,Android 架構會在主畫面中顯示「現正播放」資訊卡。資訊卡包含專輯封面、名稱和應用程式圖示等媒體中繼資料。 使用者選取卡片後,系統會開啟應用程式。

您可以使用 MediaSession 類別實作「聽聲辨曲」資訊卡。

圖 1. 在背景播放媒體時顯示「聽聲辨曲」資訊卡。

「聽聲辨曲」卡片

實作媒體工作階段、將工作階段設為啟用並要求音訊焦點後,畫面上會顯示「聽聲辨曲」資訊卡。

注意:「聽聲辨曲」資訊卡僅適用於已設定 FLAG_HANDLES_TRANSPORT_CONTROLS 標記的媒體工作階段。此旗標已於 API 級別 26 淘汰。不過,為了提供回溯相容性,舊裝置可能需要這個標記。

如果 setActive(false) 呼叫停用媒體工作階段或其他應用程式啟動媒體播放,系統就會從啟動器畫面上移除資訊卡。如果完全停止播放,但沒有啟用中的媒體,請立即停用媒體工作階段。如果暫停播放,通常會在延遲後停用媒體工作階段 (通常需要 5 至 30 分鐘)。

更新卡片

每當應用程式更新 MediaSession 中的播放狀態時,「聽聲辨曲」資訊卡就會更新,顯示目前媒體的狀態。如需操作說明,請參閱「更新播放狀態」。

同樣地,應用程式也可以更新 MediaMetadata,為「聽聲辨曲」資訊卡提供目前媒體的相關資訊,例如標題、副標題和各種圖示。如要瞭解如何更新媒體中繼資料,請參閱更新媒體中繼資料

回應使用者的動作

使用者選取「現正播放」資訊卡時,系統會開啟擁有工作階段的應用程式。如果應用程式提供 PendingIntentsetSessionActivity(),系統就會啟動您指定的活動,如以下程式碼片段所示。如果沒有,系統會開啟預設系統意圖。您指定的活動必須提供能讓使用者暫停或停止播放的播放控制項。

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);