سمات الخلاط المفضلة على أجهزة USB

يوفّر Android 14 واجهات برمجة تطبيقات للمطوّرين يمكن للتطبيقات استخدامها لطلب البحث عن سمات المزج المفضّلة وضبطها لتشغيل الصوت عبر USB. تعمل سمات أداة المزج المفضّلة هذه على تحسين تجربة تشغيل الصوت عبر USB من خلال السماح للتطبيقات بضبط تنسيق الصوت، وماسك القناة، ومعدّل أخذ العينات، وسلوك أداة المزج. ومن خلال استخدام واجهات برمجة تطبيقات المزج المفضّلة على أجهزة USB المتوافقة، يمكن للمستخدمين تشغيل الصوت في وقت استجابة أقل والمحتوى الصوتي بدقة أعلى.

توفّر هذه الميزة أيضًا إمكانية استخدام سلوك أدوات مختلطة للتشغيل بدقة بت واحد اختياري لأجهزة USB. يتيح وضع "الدقة الكاملة للبت" تشغيل التنسيقَين master quality authenticated (MQA) وdirect stream digital (DSD) على محوِّلات رقمية إلى تناظرية (DAC) متوافقة.

الواجهة

يعالج "مدير سياسة الصوت" سمات أداة المزج في إطار العمل. تمثّل فئة AudioMixerAttributes سمات أداة المزج. تتضمّن فئة AudioMixerAttributes عنصرًا AudioFormat يصف تنسيق البيانات الصوتية وقناع القناة ومعدّل أخذ العينات للمحوِّل. يحدِّد إطار العمل تلقائيًا سلوك أداة المزج التي تجمع جميع مصادر الصوت وتطبّق عناصر التحكّم في الصوت والتأثيرات.

إذا كان سلوك المزج يستخدم الوضع BIT_PERFECT، يرسل النظام المحتوى الصوتي بدون تعديل من خلال إطار عمل الصوت وHAL ومعالج الإشارات الرقمية (DSP) اختياريًا، من واجهة برمجة التطبيقات إلى جهاز USB. يتيح وضع BIT_PERFECT التنسيقات المشفّرة، مثل MQA أو DSD، والتي يمكن أن يؤدي فيها أي تكبير أو تصغير في مستوى الصوت أو مزج إلى تدمير معنى البيانات.

عندما تضبط التطبيقات سمات أداة المزج، يعيد إطار العمل فتح مصدر الإخراج باستخدام سمات جديدة، إذا لزم الأمر. يوضّح الشكل التالي الواجهة بين التطبيق والإطار وHAL عند ضبط سمات أداة المزج:

preferred-mixer-attr

الشكل 1: واجهة بين التطبيق والإطار وHAL

التنفيذ

إنّ تنفيذ سمات أداة المزج المفضّلة، باستثناء سمة BIT_PERFECT ، لصوت USB أمر إلزامي في الإصدار 14 من نظام التشغيل Android.

سمات أداة المزج المفضّلة

لتفعيل سمات أداة المزج المفضّلة، يجب أن يتيح المورّدون توجيه أجهزة USB إلى منفذ المزج الديناميكي، على النحو التالي:

  1. حدِّد منفذ المزيج الديناميكي في usb_audio_policy_configuration.xml.

  2. حدِّد إمكانية توجيه أجهزة USB إلى منافذ المزيج الديناميكي إما في إعدادات سياسة الصوت أو في طريقتَي AIDL getAudioPorts وgetAudioRoutes.

اطّلِع على التنفيذ المرجعي لواجهة برمجة التطبيقات لصوت USB ضمن hardware/libhardware/modules/usbaudio. اطّلِع على مثال على منفذ مزيج ديناميكي في frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml.

سمة تشغيل مثالية

سمة التشغيل بدقة النقطة والفاصل هي سمة اختيارية ولا تتوفّر إلا في تنفيذ AIDL لواجهة برمجة التطبيقات Audio HAL. لدعم تشغيل المحتوى بدقة بت، على المورّدين إضافة علامة الإخراج بدقة بت AUDIO_OUTPUT_FLAG_BIT_PERFECT إلى منفذ المزيج الديناميكي الذي يمكن توجيهه إلى جهاز USB.

يوضّح نموذج الرمز البرمجي التالي استخدام العلامة AUDIO_OUTPUT_FLAG_BIT_PERFECT في usb_audio_policy_configuration.xml:

<module name="usb" halVersion="2.0">
    <mixPorts>
        <mixPort name="hifi_output"
                 role="source" flags="AUDIO_OUTPUT_FLAG_BIT_PERFECT">
        </mixPort>
    </mixPorts>
    <devicePorts>
        <devicePort tagName="USB Device Out"
                    type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
        </devicePort>
    </devicePorts>
    <routes>
        <route type="mix" sink="USB Device Out"
               sources="hifi_output"/>
    </routes>
</module>

في حال تحديد سمة التشغيل بدقة البت، يجب أن يضمن HAL إرسال مجرى البث الصوتي إلى جهاز USB بدون أي تعديل، أي أنّ مجرى البث الصوتي يجب ألا يتضمّن أيّ تغيير في مستوى الصوت أو تحويل معدل أخذ العينات أو تأثيرات معالجة الصوت، ويجب عدم مزجه في وحدة معالجة الإشارات الرقمية (DSP). في هذه الحالة، يتحكّم الجهاز في مستوى الصوت لأنّ إطار العمل لا يوفّر أي عنصر تحكّم في مستوى صوت البرامج.

التحقُّق

يمكنك إجراء اختبارات CTS في PreferredMixerAttributesTestActivity.java للتحقّق من توفّر سمات أداة المزج المفضّلة لأجهزة USB.

للتحقّق من صحة تنفيذ السمة BIT_PERFECT، استخدِم محوِّلات رقمية إلى تناظرية (DAC) USB التي تسمح باستخدام تنسيقَي MQA وDSD بدلاً من تنسيقات الصوت التي تستخدم تعديل نبضات الترميز (PCM).