אודיו ברזולוציה גבוהה

הגרסה Android 10 כוללת את השיפורים הבאים לאודיו ברזולוציה גבוהה:

  • Float: קובצי codec ו-extractors של 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, צינור העיבוד של שרשרת האפקטים משודרג כדי לתמוך בפורמט של מספרים ממשיים עם כמה ערוצים. נקודות עיקריות:

  • ההשפעות של תוכנת Android כבר הועברו לסטריאו float.
  • אפקטים מדור קודם נתמכים באמצעות מתאמי פורמט, שממירים float ל-int16 לפי הצורך.

הטמעה של אפקטים בפלט

יישום ייחוס של אפקטים של פלט זמין בכתובת frameworks/av/media/libeffects.

שותפים שמטמיעים אפקטים מותאמים אישית משלהם בפלט צריכים לבצע את הפעולות הבאות בגרסה Android 10:

  • עדכון אפקטים של פלט כדי לתמוך בפורמט float רב-ערוצי:
    • כבר לא נדרשת תמיכה בעיבוד של Int16.
    • תמיכה במספרים של ערוצי פלט מ-2 עד 8 (לצורך תאימות עתידית, כדאי להשתמש במספרים מ-1 עד 30).
    • תמיכה בספירת ערוצי קלט שתואמת לספירת ערוצי פלט עבור הוספת אפקטים. האפקטים הנוספים ממשיכים לקבל ערוץ קלט עם מונו.
    • תמיכה במסכות של מיקום הערוץ (קנוני) ובמסכות של אינדקס הערוץ (1 << n) - 1.
  • אם אתם חייבים להמשיך לתמוך באפקטים של פלט מספקים מדור קודם ולא יכולים לעדכן אותם, אתם יכולים לאמת את הקוד מדור קודם באופן הבא:
    • אפקטים של פלט מדור קודם (הוספה) צריכים לדחות הגדרות לא נתמכות ב-EFFECT_CMD_SET_CONFIG.
      • בודקים שהפורמט הוא int16.
      • בודקים שמסכות הערוצים של הקלט והפלט הן סטריאו.
      • אם אחת מהבדיקות נכשלת, הפונקציה מחזירה -EINVAL.
    • הגדרת אפקטים של פלט מדור קודם (עזר) מתבצעת על ידי AudioFlinger עם מסכת ערוץ קלט מונופוני ומסכות ערוץ פלט רב-ערוציות פוטנציאליות, בהתאם לשאלה אם יעד הפלט הוא רב-ערוצי. הן חייבות לדחות הגדרות שלא נתמכות ב- EFFECT_CMD_SET_CONFIG.
      • בודקים שהפורמט הוא int16.
      • בודקים שמסכת ערוץ הקלט היא מונו ומסכת ערוץ הפלט היא סטריאו.
      • אם אחת מהבדיקות נכשלת, הפונקציה מחזירה -EINVAL.
    • אימות קוד מדור קודם. אל תניחו שהיא עובדת!