Android Q יאפשר לאפליקציות להקליט אודיו מאפליקציות אחרות ולנטר את טמפרטורת המכשיר

Android Q מוסיף API חדש כדי להקליט את פלט האודיו הפנימי מאפליקציה אחרת וגם כדי לנטר את טמפרטורת המכשיר.

גוגל נותן, וגוגל לוקח. כל מהדורת אנדרואיד חדשה מציגה הרבה ממשקי API חדשים המשפרים את הפונקציונליות של אפליקציות קיימות או פותחות קטגוריות חדשות של אפליקציות. מצד שני, גוגל גם מסירה גישה או מגבילה את היכולות של ממשקי API קיימים כדי לשפר את האבטחה של פלטפורמת אנדרואיד. מהדורת Android Q אינה שונה, וכבר דיברנו רבות על השינויים שלה באחסון משותף, גישה ללוח, התראות וממשקי API אחרים. אצל השנה כנס Google I/O למפתחים, גוגל הכריזה על ממשקי API חדשים באנדרואיד Q המעניינים במיוחד עבור משתמשים ומפתחי משחקים ניידים: AudioPlaybackCapture ו ממשקי API תרמיים.

הקלטת השמע מאפליקציות אחרות עם AudioPlaybackCapture באנדרואיד Q

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

אנדרואיד תמכה בצילום מסך כבר מההתחלה, אבל צילום סרטונים של המסך נתמך רק מאז אנדרואיד 5.0 Lollipop עם הצגת ה-

MediaProjection API. למרבה הצער, API זה אינו מאפשר לאפליקציות צד שלישי להקליט את פלט האודיו הפנימי באפליקציות אחרות, מאלץ מקליט מסך של צד שלישי להקליט פלט שמע חיצוני מהמיקרופון של המכשיר (ס). יצרני OEM כמו סמסונג ו Huawei לספק אפליקציות מערכת להקלטת פלט האודיו הפנימי במהלך הקלטת מסך, אבל הדרך היחידה לבעלים של מכשירים אחרים להקליט כראוי את פלט הווידאו והשמע מהמכשירים שלהם הוא לקנות א אביזר של צד שלישי. למרבה המזל, גוגל סוף סוף מציגה דרך באנדרואיד Q עבור אפליקציות צד שלישי להקליט אודיו מאפליקציות אחרות.

ה-API של AudioPlaybackCapture מתואר על ידי גוגל כאנלוגי של לכידת מסך, אך להקלטת אודיו. למרות שהאפליקציה היחידה עד כה שמשתמשת ב-API היא של גוגל כיתוב חי, כלי נגישות שמוסיף כיתובים לכל סרטון שמושמע במכשיר, של ה-API התיעוד קובע כי מטרתו העיקרית היא לאפשר לאפליקציות סטרימינג ללכוד את הווית האודיו משוחק על ידי משחקים. תחשוב שגיימרים ניידים מזרימים את ההפעלות שלהם לשירותים כמו Twitch או YouTube. ה-API נועד לא להשפיע על זמן האחזור של השמע של האפליקציה שהאודיו שלה נקלט, מה שהופך אותה למושלם להקלטת משחק כדי שהאודיו והווידאו לא יעברו סינכרון.

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

  • כדי שהשמע של אפליקציה ייקלט על ידי אפליקציה של צד שלישי, יש לעמוד בדרישות הבאות:
    • האפליקציה חייבת להיות מוגדרת כ-true או לא מוגדרת ל-AudioPlaybackCapture במניפסט שלה. (ברירת המחדל היא כ-true עבור אפליקציות הממקדות ל-Android Q, אך ניתן להגדיר אותה באופן ידני עבור אפליקציות הממוקדות ל-Android Pie.)
    • האפליקציה המפיקה אודיו חייבת להשתמש באודיו מסוג USAGE_MEDIA, USAGE_GAME או USAGE_UNKNOWN.
    • יש להגדיר את מדיניות לכידת השמע (setAllowedCapturePolicy) ל-ALLOW_CAPTURE_BY_ALL. ניתן להגדיר מדיניות זו בזמן ריצה, אך יש להפעיל מחדש את ההפעלה כדי ששינוי המדיניות ייכנס לתוקף. אם ALLOW_CAPTURE_BY_SYSTEM מוגדר, אז רק אפליקציות מערכת יכולות להקליט את האודיו (אך הן מוגבלות ב שהם לא יכולים לשמור את האודיו, להעביר אותו לאפליקציה של צד שלישי, או להקליט במהירות > 16kHz 16-bit מונו איכות.)
  • כדי שאפליקציה תוכל להקליט אודיו מאפליקציה אחרת, יש לעמוד בדרישות הבאות:
    • האפליקציה חייבת להעלות את ההנחיה MediaProjectionManager.createScreenCaptureIntent והמשתמש חייב לאשר אותה.
      תיבת הדו-שיח לאישור שמשתמשים רואים כאשר אפליקציה מנסה ללכוד את המסך באמצעות MediaProjection API.
    • האפליקציה חייבת להחזיק את RECORD_AUDIO רְשׁוּת.
    • האפליקציה חייבת להיות באותו פרופיל משתמש כמו האפליקציה שהשמע שלה יוקלט.

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

כדי לקרוא עוד על ה-API של AudioPlaybackCapture באנדרואיד Q, בדוק הדף הזה.

ניטור מצערת עם תרמי API באנדרואיד Q

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

עם זאת, עם ה-Thermal API החדש באנדרואיד Q, אפליקציות יכולות לקבל התקשרות חוזרת לשלבים שונים של צנרת ביצועים - נותן למפתחים הזדמנות לעזור להפחית את העומס על המכשיר על ידי הפחתת פעילויות הדורשות מעבד, GPU או מודם משמעותיים נוֹהָג. לדוגמה, משחק יכול להפחית באופן דינמי את הרזולוציה עד שהמכשיר כבר לא מצר את GPU, או אפליקציית מפות יכולה להשבית תכונות משופרות כמו ניווט במציאות מוגברת כדי להפחית את העומס על המעבד.

כדי להשתמש ב-API החדש הזה, אפליקציות רושמות מאזין ב-PowerManager (addThermalStatusListener) והמערכת שולחת לאפליקציה אחד מקודי המצב התרמי הבאים:

  • THERMAL_STATUS_NONE: "לא תחת מצערת."
  • THERMAL_STATUS_LIGHT: "מצערת קלה כאשר ה-UX אינו מושפע."
  • THERMAL_STATUS_MODERATE: "מחסום מתון כאשר ה-UX אינו מושפע במידה רבה."
  • THERMAL_STATUS_SEVERE: "מצערת חמורה שבה ה-UX מושפע במידה רבה."
  • THERMAL_STATUS_CRITICAL: "הפלטפורמה עשתה הכל כדי להפחית את הספק."
  • THERMAL_STATUS_EMERGENCY: "רכיבי מפתח בפלטפורמה מושבתים עקב מצב תרמי. פונקציונליות המכשיר תהיה מוגבלת."
  • THERMAL_STATUS_SHUTDOWN: "צריך כיבוי מיידי.

תמיכה ב-Thermal API דורשת כמובן אנדרואיד Q, אך דרישה נוספת היא הוספת HAL חדש. גוגל אומרת שמכשירי ה-Pixel באנדרואיד Q (הכוונה היא ל-Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL, Pixel 3a, ו Pixel 3a XL) תומכים ב-Thermal API, אבל גוגל עובדת על הוספת תמיכה למכשירים אחרים.

קרא עוד על API תרמי כאן.