صوت عالي الدقة

يتضمّن إصدار Android 10 التحسينات التالية المتعلّقة بجودة الصوت العالية:

  • الأرقام العائمة: تم تعديل برامج ترميز وأدوات استخراج تنسيقَي WAV وFLAC لتتوافق مع الأرقام العائمة (أكثر من 24 بت من الدقة بدون فقدان البيانات). تم تعديل تأثيرَي "تقليل الحجم" و"الصوت الافتراضي" ليصبحا متغيرَين. يتم السماح بالدقة المعدّلة من خلال MediaPlayer (NuPlayer).
  • التردد العالي: تم تعديل برامج ترميز WAV وFLAC وأدوات استخراج الصوت لتتوافق مع 192 كيلوهرتز. يتم اختبار التأثيرات التلقائية التي يوفّرها Android للتأكّد من توافقها مع تردد 192 kHz عند الترددات العادية. وتشمل التردّدات العادية المسموح بها 88.2 كيلوهرتز و96 كيلوهرتز و176.4 كيلوهرتز و 192 كيلوهرتز.
  • القنوات المتعددة: تم اختبار تأثيرات التشغيل التلقائية على Android للتأكد من إمكانية استخدام قنوات متعددة وحتى ثماني قنوات.
  • التوقيت: يتم تضمين معلومات التوقيت في إطار العمل المتعلق بالملف الصوتي.

اعتبارًا من الإصدار 9 من نظام Android، لا تتطلّب التحسينات التالية أي تنفيذ من قِبل الشركاء:

  • تم زيادة عدد مسارات الإخراج المتزامنة للعملاء من 14 إلى 40، لأنّ النُسخ المحدودة من AudioTrack كانت مشكلة في التطبيقات التي تعمل بنظام التشغيل Android 8.x.
  • يزيد الحد الأقصى لذاكرة العميل/الخادم من 4 ميغابايت إلى 32 ميغابايت (بناءً على إجمالي ذاكرة الجهاز) للسماح بالمزيد من المقاطع الصوتية عالية الدقة والمتزامنة.
  • تم زيادة إجمالي عدد المسارات المختلطة من 32 إلى 256 لمنع تعارض الموارد بين التطبيقات وواجهة مستخدم النظام.

تغييرات تأثير الإخراج

اطّلِع على التأثيرات الصوتية لمعرفة التغييرات في إصدار Android 11.

قبل إصدار Android 9، تم تنفيذ معالجة سلسلة التأثيرات بتنسيق نموذج int16 الاستيريو. وكان لهذا الإجراء عدة قيود:

  • تفرض جميع تأثيرات الإخراج التحويل من بيانات الصوت ذات النقطة العائمة إلى int16، ما يؤدي إلى فقدان الدقة.
  • تم رفض تأثيرات الإخراج من أحواض الإنتاج التي يزيد عدد القنوات فيها عن قناتَين.

في إصدار Android 9، تمت ترقية مسار معالجة سلسلة التأثيرات لإتاحة التنسيق العائم المتعدد القنوات. النقاط الرئيسية:

  • سبق أن تم نقل تأثيرات برامج Android إلى صورة عائمة استيريو.
  • يمكن استخدام التأثيرات القديمة مع محوّلات التنسيق التي تعمل على تحويل العدد العائم إلى 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.
    • تحقَّق من الرمز القديم. لا تفترض أنّه يعمل.