يتضمّن إصدار 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، ما يؤدي إلى فقدان الدقة.
- تم رفض تأثيرات الإخراج من مصادر الإخراج التي تضم عدد قنوات أكبر من قناتين.
في الإصدار 9 من Android، تمت ترقية مسار معالجة سلسلتَي التأثير ليتيح استخدام تنسيق "القنوات المتعددة بتنسيق float". النقاط الرئيسية:
- سبق أن تم نقل تأثيرات برامج 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
.
- التحقّق من الرمز القديم لا تفترض أنّه يعمل.
- يجب أن ترفض
المؤثرات القديمة للإخراج (الإدراج) الإعدادات غير المتوافقة في