הגרסה של Android 10 כוללת את השיפורים הבאים לאודיו ברזולוציה גבוהה:
- Float: קובצי codec וכלים לחילוץ של WAV ו-FLAC עודכנו כדי לתמוך ב-float (24 ביטים ומעלה של דיוק ללא אובדן נתונים). אפקטים של Downmix ו-Virtualizer עודכנו ל-float. הדיוק המעודכן מותר על ידי MediaPlayer (NuPlayer).
- תדר גבוה: קודקים ומחלצים של WAV ו-FLAC עודכנו כדי לתמוך ב-192 קילו-הרץ. האפקטים שסופקו כברירת מחדל ב-Android נבדקים לגבי תמיכה ב-192 kHz בתדרים סטנדרטיים. התדרים הרגילים המותרים הם 88.2 kHz, 96 kHz, 176.4 kHz ו-192 kHz.
- ריבוי ערוצים: נבדקת התמיכה בריבוי ערוצים של אפקטים להפעלה ב-Android, עד שמונה ערוצים.
- Timing: מידע על התזמון כלול במסגרת האודיו.
החל מ-Android 9, השיפורים הבאים לא דורשים הטמעה של שותפים:
- מספר ערוצי הפלט של הלקוח בו-זמנית גדל מ-14 ל-40, כי מופעים מוגבלים של לקוח
AudioTrackהיו בעיה באפליקציות ב-Android 8.x. - הזיכרון המקסימלי של הלקוח/השרת גדל מ-4MB ל-32MB (בהתאם לזיכרון הכולל של המכשיר) כדי לאפשר יותר רצועות אודיו בו-זמניות ברזולוציה גבוהה.
- מספר הטראקים הכולל של אודיו מעורב גדל מ-32 ל-256 כדי למנוע תחרות על משאבים בין האפליקציות לבין ממשק המשתמש של המערכת.
שינויים בהשפעה של הפלט
מידע על שינויים בגרסה של Android 11 זמין במאמר בנושא אפקטים של אודיו.
לפני ההשקה של Android 9, העיבוד של שרשרת האפקטים בוצע בפורמט דגימה סטריאו int16. היו כמה מגבלות:
- כל אפקטי הפלט כופים המרה מנתוני אודיו של נקודה צפה ל-int16, מה שגורם לאובדן דיוק.
- אפקטים של פלט נדחו ממאגרי פלט עם מספר ערוצים גדול משניים.
בגרסה Android 9, צינור העיבוד של שרשרת האפקטים משודרג כדי לתמוך בפורמט float רב-ערוצי. נקודות עיקריות:
- ההשפעות של תוכנת Android כבר הועברו לסטריאו float.
- אפקטים מדור קודם נתמכים באמצעות מתאמי פורמטים, שממירים float ל-int16 לפי הצורך.
הטמעה של אפקטים של פלט
יישום ייחוס של קוד פתוח של אפקטים של פלט זמין בכתובת
frameworks/av/media/libeffects.
שותפים שמטמיעים אפקטים מותאמים אישית משלהם בפלט צריכים לבצע את הפעולות הבאות בגרסה Android 10:
- עדכון אפקטים של פלט כדי לתמוך בפורמט float רב-ערוצי:
- כבר לא נדרשת תמיכה בעיבוד של Int16.
- תמיכה במספרים של ערוצי פלט מ-2 עד 8 (לצורך תאימות עתידית, כדאי להשתמש במספרים מ-1 עד 30).
- תמיכה במספרים של ערוצי קלט שתואמים למספרים של ערוצי פלט עבור הוספת אפקטים. האפקטים הנוספים ממשיכים לקבל ערוץ קלט בספירה של 1 (מונו).
- תמיכה במסכות של מיקום הערוץ (קנוני) ובמסכות של אינדקס הערוץ של
(1 << n) - 1.
- אם אתם חייבים להמשיך לתמוך באפקטים של פלט מספקים מדור קודם ולא יכולים
לעדכן אותם, אתם יכולים לאמת את הקוד מדור קודם באופן הבא:
- אפקטים של פלט (הוספה) מדור קודם צריכים לדחות הגדרות לא נתמכות ב-
EFFECT_CMD_SET_CONFIG.- בודקים שהפורמט הוא int16.
- בודקים שמסכות הערוצים של הקלט והפלט הן סטריאו.
- אם אחת מהבדיקות נכשלת, הפונקציה מחזירה
-EINVAL.
- הגדרת אפקטים של פלט מדור קודם (עזר) מתבצעת על ידי AudioFlinger
עם מסכת ערוץ קלט מונופוני ומסכות ערוץ פלט רב-ערוציות פוטנציאליות, בהתאם לכך אם יעד הפלט הוא רב-ערוצי.
הם חייבים לדחות הגדרות לא נתמכות ב-
EFFECT_CMD_SET_CONFIG.- בודקים שהפורמט הוא int16.
- בודקים שמסכת ערוץ הקלט היא מונו ומסכת ערוץ הפלט היא סטריאו.
- אם אחת מהבדיקות נכשלת, הפונקציה מחזירה
-EINVAL.
- אימות קוד מדור קודם. אל תניחו שהיא עובדת!
- אפקטים של פלט (הוספה) מדור קודם צריכים לדחות הגדרות לא נתמכות ב-