החל מ-27 במרץ 2025, מומלץ להשתמש ב-android-latest-release
במקום ב-aosp-main
כדי ליצור תרומות ל-AOSP. מידע נוסף זמין במאמר שינויים ב-AOSP.
אודיו ברזולוציה גבוהה
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
במהדורת Android 10 יש את השיפורים הבאים לאודיו ברזולוציה גבוהה:
- Float: קודיקים של WAV ו-FLAC ותוכנות חילוץ עודכנו כדי לתמוך ב-float (יותר מ-24 ביט של דיוק ללא אובדן נתונים). אפקטים של Downmix ו-Virtualizer מתעדכנים ל-float.
אפשרות לעדכון הדיוק קיימת ב-MediaPlayer (NuPlayer).
- תדר גבוה: קודקים של WAV ו-FLAC ותוכנות חילוץ עודכנו כך שיתמכו ב-192kHz.
האפקטים שמוגדרים כברירת מחדל ב-Android נבדקים לתמיכה ב-192kHz בתדרים רגילים.
התדרים הרגילים המותרים הם 88.2 kHz, 96 kHz, 176.4 kHz ו-192 kHz.
- ערוצים מרובים: אפקטים שמוגדרים כברירת מחדל להפעלה ב-Android נבדקים לתמיכה בערוצים מרובים, עד שמונה ערוצים.
- Timing: פרטי התזמון כלולים במסגרת האודיו.
החל מגרסה 9 של Android, השיפורים הבאים לא דורשים הטמעה של שותפים:
- מספר הטראקים של הפלט של הלקוח בו-זמנית גדל מ-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
.
- אימות קוד מדור קודם. אל תניחו שהכול עובד כמו שצריך!
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-27 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-07-27 (שעון UTC)."],[],[],null,["# High-resolution audio\n\nThe Android 10 release includes the following\nimprovements for high-resolution audio:\n\n- **Float:** WAV, FLAC codecs, and extractors are updated to support float (24+ bits of lossless precision). Downmix and Virtualizer effects are updated to float. Updated precision is allowed by MediaPlayer (NuPlayer).\n- **High-frequency:** WAV, FLAC codecs, and extractors are updated to support 192 kHz. The default Android supplied effects are tested for 192 kHz support at standard frequencies. The standard frequencies permitted are 88.2 kHz, 96 kHz, 176.4 kHz, and 192 kHz.\n- **Multichannel:** Default Android playback effects are tested for multichannel support to eight channels.\n- **Timing:** Timing information is included throughout the audio framework.\n\nStarting in Android 9, the following improvements\ndon't require any partner implementation:\n\n- The number of simultaneous client output tracks increases from 14 to 40, as limited client instances of `AudioTrack` have been an issue for apps in Android 8.x.\n- Maximum client/server memory increases from 4 MB to 32 MB (depending on total device memory) to allow more simultaneous high-resolution audio tracks.\n- Total mixed tracks increases from 32 to 256 to prevent resource contention between apps and the System UI.\n\nOutput effect changes\n---------------------\n\nSee [Audio\neffects](/docs/core/audio/audio-effects) for Android 11 release changes.\n\nPrior to the Android 9 release, effect chain processing\nwas implemented in stereo int16 sample format. This had several limitations:\n\n- All output effects forced conversion from floating point audio data to int16, causing loss of precision.\n- Output effects were rejected from output sinks with a channel count greater than two.\n\nIn the Android 9 release, the effect chain processing\npipeline is upgraded to support the multichannel float format. Key points:\n\n- Android software effects are already migrated to stereo float.\n- Legacy effects are supported with format adapters, which convert float to int16 as needed.\n\nImplement output effects\n------------------------\n\nA reference implementation for output effects is available under\n`frameworks/av/media/libeffects`.\n\nPartners implementing their own custom output effects should do the\nfollowing for the Android 10 release:\n\n- Update output effects to support the multichannel float format:\n - Int16 processing support is no longer required.\n - Support output channel counts from 2--8 (for future compatibility consider counts from 1--30).\n - Support input channel counts matching output channel counts for insert effects. Auxiliary effects continue to see an input channel count of 1 (mono).\n - Support both channel position masks (canonical) and channel index masks of `(1 \u003c\u003c n) - 1`.\n- If you must continue to support legacy vendor output effects and can't update them, then verify legacy code as follows:\n - Legacy output (insert) effects **must reject** unsupported configurations in `EFFECT_CMD_SET_CONFIG`.\n - Check that the format is int16.\n - Check that the input and output channel masks are stereo.\n - If either check fails, return `-EINVAL`.\n - Legacy output (auxiliary) effects are configured by AudioFlinger with a mono input channel mask and potentially multichannel output channel masks, depending on whether the output sink is multichannel. They **must reject** unsupported configurations in `\n EFFECT_CMD_SET_CONFIG`.\n - Check that the format is int16.\n - Check that the input channel mask is mono and the output channel mask is stereo.\n - If either check fails, return `-EINVAL`.\n - Verify legacy code. Don't assume that it works!"]]