הצגת כרטיס של 'מה שומעים עכשיו?'

אפליקציות טלוויזיה שמשמיעות בהן אודיו עשויות להמשיך לפעול אחרי שהמשתמש חוזר למסך הבית, או עובר לאפליקציה אחרת. כדי לעשות זאת, האפליקציה צריכה לספק כרטיס מה שומעים עכשיו? בבית מסך. הכרטיס הזה מאפשר למשתמשים להבין מאיפה מגיע האודיו ולחזור לאפליקציה כדי לשלוט בהפעלת המדיה.

בכל פעם שמשתמש פעיל MediaSession הוא במסגרת Android, מוצג כרטיס 'מה שומעים עכשיו?' במסך הבית. הכרטיס הדוח כולל מטא-נתונים של מדיה כמו עטיפת האלבום, השם וסמל האפליקציה. כשהמשתמש בוחר כרטיס, המערכת פותחת את האפליקציה.

כרטיס 'מה שומעים עכשיו?'

אחרי שמטמיעים סשן מדיה, מגדירים במצב פעיל, ולבקש מיקוד אודיו, הכרטיס מה שומעים עכשיו? מופיע.

הערה: הכרטיס מה שומעים עכשיו? מוצג רק עבור מדיה עם FLAG_HANDLES_TRANSPORT_CONTROLS קבוצת סימונים. הדגל הזה הוצא משימוש ברמת API 26. עם זאת, יכול להיות שעדיין יהיה צורך בסימון הזה במכשירים ישנים יותר לצורך תאימות לאחור.

הכרטיס יוסר ממסך מרכז האפליקציות כאשר setActive(false) ההגדרה משביתה את הפעלת המדיה או כשאפליקציה אחרת מפעילה הפעלת מדיה. אם ההפעלה היא הופסק לגמרי ואין מדיה פעילה, יש להשבית את סשן המדיה באופן מיידי. אם ההפעלה מושהית, כדאי להשבית את סשן המדיה לאחר השהיה, בדרך כלל בין 5 ל-30 דקות.

עדכון הכרטיס

בכל פעם שהאפליקציה מעדכנת את מצב ההפעלה ב-MediaSession, הכרטיס מה שומעים עכשיו? מתעדכן כדי להציג את המצב של המדיה הנוכחית. כדי ללמוד כיצד לעשות זאת, אפשר לעיין במאמר מעדכנים את מצב ההפעלה.

באופן דומה, האפליקציה יכולה לעדכן MediaMetadata לספק מידע לכרטיס מה שומעים עכשיו? על המדיה הנוכחית, כמו הכותרת, כותרת המשנה, ומבחר של סמלים. כדי ללמוד כיצד לעשות זאת, אפשר לעיין במאמר מעדכנים את המטא-נתונים של המדיה.

תגובה לפעולת המשתמש

כשהמשתמש בוחר בכרטיס מה שומעים עכשיו?, המערכת פותחת את האפליקציה שהיא הבעלים של סשן. אם האפליקציה שלך מספקת PendingIntent עד setSessionActivity(), המערכת מפעילה את הפעילות שציינתם, כמו שהיא מוצגת בקטע הקוד הבא. אם לא, ה-Intent של המערכת, שמוגדר כברירת מחדל, נפתח. הפעילות שתגדירו חייבת לספק את רכיבי ה-UI להפעלה. לאפשר למשתמשים להשהות או להפסיק את ההפעלה.

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);

תרחישים לדוגמה קבילים

יש להשתמש בכרטיס מה שומעים עכשיו? רק במקרים שבהם המשתמש מצפה להמשיך לשמוע תופעל ברקע כשיוצאים מהאפליקציה. הפעלת סרטון או אודיו ממשחק צריכים תמיד להשהות, אלא אם האפליקציה משולבת ועומדת בדרישות של 'תמונה בתוך תמונה'.