عرض بطاقة "التعرّف التلقائي على الموسيقى"
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
قد تواصل تطبيقات التلفزيون التي تشغِّل الصوت ذلك بعد عودة المستخدم إلى الشاشة الرئيسية أو
التبديل إلى تطبيق آخر. لإجراء ذلك، يجب أن يوفّر التطبيق بطاقة التعرّف التلقائي على الموسيقى على الشاشة الرئيسية.
الشاشة. وتتيح هذه البطاقة للمستخدمين معرفة مصدر الصوت والرجوع إلى تطبيقك من أجل
للتحكم في تشغيل الوسائط.
عند وجود نشاط
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
)
}
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);
حالات الاستخدام المقبولة
يجب عدم استخدام بطاقة التعرّف التلقائي على الموسيقى إلا في الحالات التي يتوقّع فيها المستخدم استمرار تشغيل الصوت.
يتم تشغيله في الخلفية عند مغادرة التطبيق يجب دائمًا تشغيل الفيديو أو الصوت الصادر من اللعبة
مؤقتًا، إلا إذا كان تطبيقك يتكامل مع الميزة ويتوافق مع ميزة "نافذة ضمن النافذة".
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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."]]