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

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

  • Float: يتم تحديث برامج الترميز 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 إلى تعويم الاستريو.
  • يتم دعم التأثيرات القديمة باستخدام محولات التنسيق، والتي تقوم بتحويل التعويم إلى int16 حسب الحاجة.

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

يتوفر التنفيذ المرجعي لتأثيرات المخرجات ضمن 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 .
    • التحقق من الرمز القديم. لا تفترض أنه يعمل!