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

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

  • الفاصلة العائمة: تم تعديل برامج ترميز WAV وFLAC وأدوات الاستخراج لتتوافق مع الفاصلة العائمة (24 بت أو أكثر من الدقة بدون فقدان البيانات). تم تعديل تأثيرَي Downmix وVirtualizer ليتوافقا مع الفاصلة العائمة. يسمح MediaPlayer (NuPlayer) بالدقة المعدَّلة.
  • التردد العالي: تم تعديل برامج ترميز WAV وFLAC وأدوات الاستخراج لتتوافق مع 192 كيلوهرتز. تم اختبار التأثيرات التلقائية التي يوفّرها Android للتأكّد من توافقها مع 192 كيلوهرتز عند الترددات العادية. الترددات العادية المسموح بها هي 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 إلى الفاصلة العائمة الاستريو.
  • تتوافق التأثيرات القديمة مع محوّلات التنسيق التي تحوّل الفاصلة العائمة إلى int101} 6 حسب الحاجة.

تنفيذ تأثيرات الإخراج

يتوفّر تنفيذ مرجعي لتأثيرات الإخراج ضمن frameworks/av/media/libeffects.

على الشركاء الذين ينفّذون تأثيرات الإخراج المخصّصة الخاصة بهم اتّباع الخطوات التالية لإصدار Android 10:

  • تعديل تأثيرات الإخراج لتتوافق مع تنسيق الفاصلة العائمة المتعدد القنوات:
    • لم يعُد مطلوبًا توفير الدعم لمعالجة int16.
    • توفير الدعم لأعداد قنوات الإخراج من 2 إلى 8 (لتحقيق التوافق في المستقبل، يُرجى مراعاة الأعداد من 1 إلى 30).
    • توفير الدعم لأعداد قنوات الإدخال التي تتطابق مع أعداد قنوات الإخراج لـ تأثيرات الإدراج. ستستمر التأثيرات الإضافية في عرض عدد قنوات إدخال يساوي 1 (أحادي).
    • توفير الدعم لكلّ من أقنعة موضع القناة (الأساسية) وأقنعة فهرس القناة (1 << n) - 1.
  • إذا كان عليك الاستمرار في توفير الدعم لتأثيرات الإخراج القديمة الخاصة بالمورّد وتعذّر تعديلها، عليك التحقّق من الرمز القديم على النحو التالي:
    • يجب أن ترفضتأثيرات الإخراج القديمة (الإدراج) الإعدادات غير المتوافقة في EFFECT_CMD_SET_CONFIG.
      • تأكَّد من أنّ التنسيق هو int16.
      • تأكَّد من أنّ أقنعة قنوات الإدخال والإخراج هي استريو.
      • إذا فشل أي من الاختبارَين، عليك عرض الرمز -EINVAL.
    • يتم ضبط تأثيرات الإخراج القديمة (الإضافية) من خلال AudioFlinger باستخدام قناع قناة إدخال أحادي وقناع قناة إخراج متعدد القنوات، وذلك حسب ما إذا كان مصدر الإخراج متعدد القنوات. يجب أن ترفض هذه التأثيرات الإعدادات غير المتوافقة في EFFECT_CMD_SET_CONFIG.
      • تأكَّد من أنّ التنسيق هو int16.
      • تأكَّد من أنّ قناع قناة الإدخال أحادي وقناع قناة الإخراج استريو.
      • إذا فشل أي من الاختبارَين، عليك عرض الرمز -EINVAL.
    • تحقَّق من الرمز القديم. لا تفترض أنّه يعمل.