عرض بطاقة "التعرّف التلقائي على الموسيقى"

قد تستمر تطبيقات التلفزيون التي تشغّل الصوت في فعل ذلك بعد أن يعود المستخدم إلى الشاشة الرئيسية أو ينتقل إلى تطبيق آخر. ولإجراء ذلك، يجب أن يوفّر التطبيق بطاقة التعرّف التلقائي على الموسيقى على الشاشة الرئيسية. تتيح هذه البطاقة للمستخدمين معرفة مصدر الصوت والعودة إلى تطبيقك للتحكّم في تشغيل الوسائط.

عند توفّر MediaSession نشطة، يعرض إطار عمل Android بطاقة التعرّف التلقائي على الموسيقى على الشاشة الرئيسية. تتضمّن البطاقة بيانات وصفية للوسائط، مثل صورة الألبوم والعنوان ورمز التطبيق. عندما يختار المستخدم البطاقة، يفتح النظام التطبيق.

بطاقة "التعرّف التلقائي على الموسيقى"

بعد تنفيذ جلسة وسائط وضبط الجلسة على نشطة وطلب أولويّة الصوت، تظهر بطاقة التعرّف التلقائي على الموسيقى.

ملاحظة: لا تظهر بطاقة التعرّف التلقائي على الموسيقى إلا لجلسة وسائط تم ضبط العلامة FLAG_HANDLES_TRANSPORT_CONTROLS لها. تم إيقاف هذه العلامة نهائيًا في المستوى 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 or PendingIntent.FLAG_IMMUTABLE
    )
}
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);

حالات الاستخدام المقبولة

يجب استخدام بطاقة التعرّف التلقائي على الموسيقى فقط في الحالات التي يتوقّع فيها المستخدم استمرار تشغيل الصوت في الخلفية عند مغادرة تطبيقك. يجب دائمًا إيقاف تشغيل الفيديو أو الصوت من لعبة مؤقتًا، ما لم يكن تطبيقك متوافقًا مع ميزة "نافذة ضمن النافذة" ومدمجًا بها.