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

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