برنامههای تلویزیونی که صدا را پخش میکنند ممکن است پس از بازگشت کاربر به صفحه اصلی یا جابجایی به برنامه دیگر به این کار ادامه دهند. برای انجام این کار، برنامه باید یک کارت 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 فقط باید در مواردی استفاده شود که کاربر انتظار دارد هنگام خروج از برنامه، صدا در پسزمینه همچنان پخش شود. پخش ویدیو یا صدای یک بازی همیشه باید متوقف شود، مگر اینکه برنامه شما یکپارچه و مطابق با تصویر در تصویر باشد.