يتضمّن إصدار Android 10 التحسينات التالية على الصوت عالي الدقة:
- الفاصلة العائمة: تم تعديل برامج الترميز والاستخراج الخاصة بتنسيقي WAV وFLAC لتتوافق مع الفاصلة العائمة (24 بت أو أكثر من الدقة بدون فقدان البيانات). تم تعديل تأثيرَي "الدمج" و"المحاكاة" ليصبحا عائمَين. يسمح MediaPlayer (NuPlayer) بالدقة المعدَّلة.
- التردد العالي: تم تعديل برامج الترميز والاستخراج WAV وFLAC لتتوافق مع 192 كيلو هرتز. يتم اختبار التأثيرات التلقائية التي يوفّرها Android للتأكّد من توافقها مع معدّل 192 كيلو هرتز عند الترددات العادية. الترددات الصوتية العادية المسموح بها هي 88.2 كيلوهرتز و96 كيلوهرتز و176.4 كيلوهرتز و192 كيلوهرتز.
- قنوات متعددة: يتم اختبار تأثيرات التشغيل التلقائية على Android للتأكّد من توفّر دعم للقنوات المتعددة يصل إلى ثماني قنوات.
- التوقيت: يتم تضمين معلومات التوقيت في جميع أنحاء إطار عمل الصوت.
اعتبارًا من Android 9، لا تتطلّب التحسينات التالية أي تنفيذ من الشريك:
- يزداد عدد مسارات إخراج العميل المتزامنة من 14 إلى 40، لأنّ عدد مثيلات العميل المحدودة في
AudioTrack
كان يسبّب مشاكل للتطبيقات في الإصدار 8.x من نظام التشغيل Android. - زيادة الحد الأقصى لذاكرة العميل/الخادم من 4 ميغابايت إلى 32 ميغابايت (حسب إجمالي ذاكرة الجهاز) للسماح بتشغيل المزيد من مقاطع الصوت المتزامنة عالية الدقة
- يزداد إجمالي عدد المسارات المختلطة من 32 إلى 256 لمنع تعارض الموارد بين التطبيقات وواجهة مستخدم النظام.
تغييرات تأثير الإخراج
يمكنك الاطّلاع على تأثيرات الصوت لمعرفة التغييرات في إصدار Android 11.
قبل إصدار Android 9، تم تنفيذ معالجة سلسلة التأثيرات بتنسيق عيّنة int16 استريو. كانت هناك عدّة قيود على ذلك:
- تسبّبت جميع تأثيرات الإخراج في تحويل إجباري من بيانات الصوت ذات الفاصلة العائمة إلى int16، ما أدّى إلى فقدان الدقة.
- تم رفض تأثيرات الإخراج من مصادر الإخراج التي يتجاوز عدد قنواتها قناتَين.
في إصدار Android 9، تمّت ترقية مسار معالجة سلسلة التأثيرات ليتوافق مع تنسيق الفاصلة العائمة المتعدّد القنوات. النقاط الرئيسية:
- تمّ نقل تأثيرات برامج Android إلى تنسيق "الاستريو العائم".
- تتوافق المؤثرات القديمة مع محوّلات التنسيق التي تحوّل قيمة float إلى int16 حسب الحاجة.
تنفيذ تأثيرات الإخراج
يتوفّر تنفيذ مرجعي لتأثيرات الإخراج ضمن
frameworks/av/media/libeffects
.
على الشركاء الذين ينفّذون تأثيرات مخصّصة خاصة بهم في المخرجات اتّباع ما يلي في إصدار Android 10:
- تعديل تأثيرات الإخراج لتتوافق مع تنسيق الفاصلة العائمة المتعدد القنوات:
- لم يعُد من الضروري توفير إمكانية معالجة Int16.
- يجب أن تتراوح أعداد قنوات الإخراج بين 2 و8 (لضمان التوافق مع الإصدارات المستقبلية، يجب أن تتراوح الأعداد بين 1 و30).
- تتيح هذه السمة مطابقة عدد قنوات الإدخال مع عدد قنوات الإخراج لتأثيرات الإدراج. ستبقى المؤثرات الصوتية المساعدة تستخدم قناة إدخال واحدة (أحادية).
- تتيح هذه السمة استخدام كلّ من أقنعة موضع القناة (الأساسية) وأقنعة فهرس القناة بقيمة
(1 << n) - 1
.
- إذا كان عليك مواصلة توفير تأثيرات الإخراج القديمة الخاصة بالمورّدين وتعذّر تعديلها، عليك التحقّق من الرمز القديم على النحو التالي:
- يجب أن ترفض تأثيرات الإخراج القديمة (الإدراج) الإعدادات غير المتوافقة في
EFFECT_CMD_SET_CONFIG
.- تأكَّد من أنّ التنسيق هو int16.
- تأكَّد من أنّ أقنعة قنوات الإدخال والإخراج هي أقنعة استريو.
- إذا لم تنجح أي من عمليتَي التحقّق، أرجِع القيمة
-EINVAL
.
- يتم ضبط تأثيرات الإخراج القديمة (المساعدة) من خلال AudioFlinger
باستخدام قناع قناة إدخال أحادي وقناع قناة إخراج متعدد القنوات،
وذلك حسب ما إذا كان مصدر الإخراج متعدد القنوات.
يجب رفض الإعدادات غير المتوافقة في
EFFECT_CMD_SET_CONFIG
.- تأكَّد من أنّ التنسيق هو int16.
- تأكَّد من أنّ قناع قناة الإدخال أحادي وقناع قناة الإخراج استريو.
- إذا لم تنجح أي من عمليتَي التحقّق، أرجِع القيمة
-EINVAL
.
- تأكيد الرمز القديم لا تفترض أنّها تعمل!
- يجب أن ترفض تأثيرات الإخراج القديمة (الإدراج) الإعدادات غير المتوافقة في