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