یک کارت Now Playing را نمایش دهید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
برنامههای تلویزیونی که صدا را پخش میکنند ممکن است پس از بازگشت کاربر به صفحه اصلی یا جابجایی به برنامه دیگر به این کار ادامه دهند. برای انجام این کار، برنامه باید یک کارت Now Playing در صفحه اصلی ارائه دهد. این کارت به کاربران امکان می دهد بفهمند صدا از کجا می آید و برای کنترل پخش رسانه به برنامه شما بازگردند.
هر زمان که یک MediaSession
فعال وجود داشته باشد، چارچوب Android یک کارت Now Playing را در صفحه اصلی نمایش می دهد. این کارت شامل ابرداده های رسانه ای مانند هنر آلبوم، عنوان و نماد برنامه است. هنگامی که کاربر کارت را انتخاب می کند، سیستم برنامه را باز می کند.
در حال حاضر کارت بازی
پس از اجرای یک جلسه رسانه ، جلسه را روی فعال تنظیم کنید و فوکوس صوتی را درخواست کنید، کارت Now Playing ظاهر می شود.
توجه: کارت Now Playing فقط برای یک جلسه رسانه با مجموعه پرچم FLAG_HANDLES_TRANSPORT_CONTROLS
نمایش داده می شود. این پرچم در سطح 26 API منسوخ شده است. با این حال، این پرچم همچنان در دستگاههای قدیمیتر برای سازگاری با نسخههای قبلی مورد نیاز است.
هنگامی که یک تماس setActive(false)
جلسه رسانه را غیرفعال میکند یا زمانی که برنامه دیگری پخش رسانه را آغاز میکند، کارت از صفحه راهانداز حذف میشود. اگر پخش به طور کامل متوقف شد و رسانه فعالی وجود نداشت، بلافاصله جلسه رسانه را غیرفعال کنید. اگر پخش متوقف شد، پس از تأخیر، معمولاً از 5 تا 30 دقیقه، جلسه رسانه را غیرفعال کنید.
کارت را به روز کنید
هر زمان که برنامه شما وضعیت پخش را در MediaSession
بهروزرسانی میکند، کارت Now Playing بهروزرسانی میشود تا وضعیت رسانه فعلی را نشان دهد. برای یادگیری نحوه انجام این کار، به به روز رسانی وضعیت پخش مراجعه کنید.
به طور مشابه، برنامه شما میتواند MediaMetadata
بهروزرسانی کند تا اطلاعاتی را در مورد رسانه فعلی به کارت Now Playing ارائه کند، مانند عنوان، زیرنویس و نمادهای مختلف. برای یادگیری نحوه انجام این کار، به بهروزرسانی فراداده رسانه مراجعه کنید.
به عملکرد کاربر پاسخ دهید
هنگامی که کاربر کارت Now Playing را انتخاب می کند، سیستم برنامه ای را که مالک جلسه است باز می کند. اگر برنامه شما یک PendingIntent
برای setSessionActivity()
ارائه دهد، سیستم فعالیتی را که شما مشخص کرده اید اجرا می کند، همانطور که در قطعه کد زیر نشان داده شده است. اگر نه، هدف سیستم پیش فرض باز می شود. فعالیتی که مشخص میکنید باید کنترلهای بازپخشی را ارائه کند که به کاربران امکان توقف یا توقف پخش را بدهد.
کاتلین
val pi: PendingIntent = Intent(context, MyActivity::class.java).let { intent ->
PendingIntent.getActivity(
context, 99 /*request code*/,
intent,
PendingIntent.FLAG_UPDATE_CURRENT
)
}
session.setSessionActivity(pi)
جاوا
Intent intent = new Intent(context, MyActivity.class);
PendingIntent pi = PendingIntent.getActivity(context, 99 /*request code*/,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
session.setSessionActivity(pi);
موارد استفاده پذیرفته شده
کارت Now Playing فقط باید در مواردی استفاده شود که کاربر انتظار دارد هنگام خروج از برنامه، صدا در پسزمینه همچنان پخش شود. پخش ویدیو یا صدای یک بازی همیشه باید متوقف شود، مگر اینکه برنامه شما یکپارچه و مطابق با تصویر در تصویر باشد.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Display a Now Playing card\n\nTV apps that play audio may continue to do so after the user returns to the home screen or\nswitches to another app. To do so, the app must provide a **Now Playing** card on the home\nscreen. This card lets users understand where the audio is coming from and return to your app to\ncontrol media playback.\n\n\nWhenever an active\n[MediaSession](/reference/android/media/session/MediaSession) is\npresent, the Android framework displays a **Now Playing** card on the home screen. The card\nincludes media metadata such as album art, title, and app icon. When the user selects the card,\nthe system opens the app.\n\nNow Playing card\n----------------\n\n\nAfter you [implement a media session](/training/tv/playback/media-session), set the\nsession to active, and request audio focus, the **Now Playing** card appears.\n\n**Note:** The **Now Playing** card displays only for a media\nsession with the\n[FLAG_HANDLES_TRANSPORT_CONTROLS](/reference/android/media/session/MediaSession#FLAG_HANDLES_TRANSPORT_CONTROLS)\nflag set. This flag is deprecated on API level 26. However, this flag could still be needed on older devices for backwards compatibility.\n\n\nThe card is removed from the launcher screen when a\n[setActive(false)](/reference/android/media/session/MediaSession#setActive(boolean))\ncall deactivates the media session or when another app initiates media playback. If playback is\ncompletely stopped and there is no active media, deactivate the media session\nimmediately. If playback is paused, deactivate the media session after a delay,\nusually from 5 to 30 minutes.\n\nUpdate the card\n---------------\n\n\nWhenever your app updates the playback state in the `MediaSession`, the\n**Now Playing** card updates to show the state of the current media. To learn how to do this, see\n[Update the playback state](/training/tv/playback/media-session#state).\n\n\nSimilarly, your app can update the\n[MediaMetadata](/reference/android/media/MediaMetadata) to provide\ninformation to the **Now Playing** card about the current media, such as the title, subtitle,\nand various icons. To learn how to do this, see\n[Update the media metadata](/training/tv/playback/media-session#metadata).\n\nRespond to user action\n----------------------\n\n\nWhen the user selects the **Now Playing** card, the system opens the app that owns the\nsession. If your app provides a\n[PendingIntent](/reference/android/app/PendingIntent) to\n[setSessionActivity()](/reference/android/media/session/MediaSession#setSessionActivity(android.app.PendingIntent)),\nthe system launches the activity you specify, as shown in the following code snippet. If not,\nthe default system intent opens. The activity you specify must provide playback controls that\nlet users pause or stop playback. \n\n### Kotlin\n\n```kotlin\nval pi: PendingIntent = Intent(context, MyActivity::class.java).let { intent -\u003e\n PendingIntent.getActivity(\n context, 99 /*request code*/,\n intent,\n PendingIntent.FLAG_UPDATE_CURRENT\n )\n}\nsession.setSessionActivity(pi)\n```\n\n### Java\n\n```java\nIntent intent = new Intent(context, MyActivity.class);\nPendingIntent pi = PendingIntent.getActivity(context, 99 /*request code*/,\n intent, PendingIntent.FLAG_UPDATE_CURRENT);\nsession.setSessionActivity(pi);\n```\n\nAccepted use cases\n------------------\n\n\nThe **Now Playing** card should only be used in cases where the user expects audio to continue\nplaying in the background when leaving your app. Video playback or sound from a game should always\npause, unless your app is integrating and compliant with picture-in-picture."]]