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