نمایش کارت «درحال پخش»

برنامه‌های تلویزیونی که صدا پخش می‌کنند ممکن است پس‌از بازگشت کاربر به صفحه اصلی یا رفتن به برنامه دیگر، به پخش صدا ادامه دهند. برای انجام این کار، برنامه باید کارت درحال پخش را در صفحه اصلی ارائه دهد. این کارت به کاربران امکان می‌دهد بفهمند صدا از کجا می‌آید و برای کنترل بازپخش رسانه به برنامه شما برگردند.

هرگاه MediaSession فعال حاضر باشد، چارچوب Android کارت درحال پخش را در صفحه اصلی نمایش می‌دهد. کارت شامل فراداده رسانه مانند جلد آلبوم، عنوان، و نماد برنامه است. وقتی کاربر کارت را انتخاب می‌کند، سیستم برنامه را باز می‌کند.

کارت «درحال پخش»

پس‌از پیاده‌سازی جلسه رسانه، جلسه را روی فعال تنظیم کنید و تمرکز صوتی را درخواست کنید، کارت درحال پخش ظاهر می‌شود.

توجه: کارت درحال پخش فقط برای جلسه رسانه‌ای با FLAG_HANDLES_TRANSPORT_CONTROLS پرچم تنظیم‌شده نمایش داده می‌شود. این پرچم در سطح میانای برنامه‌سازی کاربردی ۲۶ نامناسب است. بااین‌حال، این پرچم ممکن است همچنان در دستگاه‌های قدیمی‌تر برای سازگاری با نسخه‌های قدیمی‌تر موردنیاز باشد.

وقتی تماس setActive(false) جلسه رسانه را غیرفعال می‌کند یا وقتی برنامه دیگری بازپخش رسانه را شروع می‌کند، کارت از صفحه راه‌انداز برداشته می‌شود. اگر بازپخش به‌طور کامل متوقف شده است و هیچ رسانه فعالی وجود ندارد، جلسه رسانه را بلافاصله غیرفعال کنید. اگر بازپخش موقتاً متوقف شود، جلسه رسانه را پس‌از تأخیری، معمولاً از ۵ تا ۳۰ دقیقه، غیرفعال کنید.

به‌روز کردن کارت

هرگاه برنامه شما وضعیت بازپخش را در MediaSession به‌روزرسانی کند، کارت درحال پخش به‌روزرسانی می‌شود تا وضعیت رسانه فعلی را نشان دهد. برای آشنایی با نحوه انجام این کار، به به‌روزرسانی وضعیت بازپخش مراجعه کنید.

به‌همین ترتیب، برنامه شما می‌تواند MediaMetadata را به‌روز کند تا اطلاعاتی درباره رسانه فعلی، مثل عنوان، زیرنویس، و نمادهای مختلف، به کارت درحال پخش ارائه دهد. برای یادگیری نحوه انجام این کار، به به‌روزرسانی فراداده رسانه مراجعه کنید.

پاسخ به کنش کاربر

وقتی کاربر کارت درحال پخش را انتخاب می‌کند، سیستم برنامه‌ای را که مالک جلسه است باز می‌کند. اگر برنامه‌تان PendingIntent را به setSessionActivity() ارائه دهد، سیستم فعالیت مشخص‌شده شما را راه‌اندازی می‌کند، همان‌طور که در تکه‌کد زیر نشان داده شده است. اگر وجود نداشته باشد، هدف سیستم پیش‌فرض باز می‌شود. فعالیتی که مشخص می‌کنید باید کنترل‌های بازپخش ارائه دهد که به کاربران امکان می‌دهد بازپخش را موقتاً متوقف یا متوقف کنند.

کاتلین

val pi: PendingIntent = Intent(context, MyActivity::class.java).let { intent ->
    PendingIntent.getActivity(
        context, 99 /*request code*/,
        intent,
        PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
    )
}
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);

موارد استفاده پذیرفته‌شده

از کارت درحال پخش فقط باید در مواردی استفاده شود که کاربر انتظار دارد وقتی از برنامه شما خارج می‌شود، صدا همچنان در پس‌زمینه پخش شود. پخش ویدیو یا صدای بازی باید همیشه موقتاً متوقف شود، مگر اینکه برنامه شما با تصویردرتصویر ادغام شده باشد و از آن پیروی کند.