在啟動器後方或背景播放媒體時,電視應用程式必須顯示「現正播放」資訊卡。這張資訊卡可讓使用者返回目前正在播放媒體的應用程式。
有運作中的 MediaSession
時,Android 架構會在主畫面中顯示「現正播放」資訊卡。資訊卡包含專輯封面、名稱和應用程式圖示等媒體中繼資料。
使用者選取卡片後,系統會開啟應用程式。
您可以使用 MediaSession
類別實作「聽聲辨曲」資訊卡。

圖 1. 在背景播放媒體時顯示「聽聲辨曲」資訊卡。
「聽聲辨曲」卡片
實作媒體工作階段、將工作階段設為啟用並要求音訊焦點後,畫面上會顯示「聽聲辨曲」資訊卡。
注意:「聽聲辨曲」資訊卡僅適用於已設定 FLAG_HANDLES_TRANSPORT_CONTROLS
標記的媒體工作階段。此旗標已於 API 級別 26 淘汰。不過,為了提供回溯相容性,舊裝置可能需要這個標記。
如果 setActive(false)
呼叫停用媒體工作階段或其他應用程式啟動媒體播放,系統就會從啟動器畫面上移除資訊卡。如果完全停止播放,但沒有啟用中的媒體,請立即停用媒體工作階段。如果暫停播放,通常會在延遲後停用媒體工作階段 (通常需要 5 至 30 分鐘)。
更新卡片
每當應用程式更新 MediaSession
中的播放狀態時,「聽聲辨曲」資訊卡就會更新,顯示目前媒體的狀態。如需操作說明,請參閱「更新播放狀態」。
同樣地,應用程式也可以更新 MediaMetadata
,為「聽聲辨曲」資訊卡提供目前媒體的相關資訊,例如標題、副標題和各種圖示。如要瞭解如何更新媒體中繼資料,請參閱更新媒體中繼資料。
回應使用者的動作
使用者選取「現正播放」資訊卡時,系統會開啟擁有工作階段的應用程式。如果應用程式提供 PendingIntent
給 setSessionActivity()
,系統就會啟動您指定的活動,如以下程式碼片段所示。如果沒有,系統會開啟預設系統意圖。您指定的活動必須提供能讓使用者暫停或停止播放的播放控制項。
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);