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

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

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

واجهه المستخدم

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

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

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

preferred-mixer-attr

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

تطبيق

يعد تنفيذ سمات الخلاط المفضلة، بخلاف سمة BIT_PERFECT ، لصوت USB أمرًا إلزاميًا لنظام التشغيل Android 14.

سمات الخلاط المفضلة

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

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

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

راجع التنفيذ المرجعي لـ USB audio HAL ضمن 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 ، استخدم USB DACs التي تدعم MQA وDSD عبر تنسيقات صوت تعديل رمز النبض (PCM).