يقدّم نظام التشغيل 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 عند ضبط سمات أداة المزج:
الشكل 1: واجهة بين التطبيق والإطار وHAL
التنفيذ
إنّ تنفيذ سمات أداة المزج المفضّلة، باستثناء سمة BIT_PERFECT
، لصوت USB أمر إلزامي في الإصدار 14 من نظام التشغيل Android.
سمات أداة المزج المفضّلة
لتفعيل سمات أداة المزج المفضّلة، يجب أن يتيح المورّدون توجيه أجهزة USB إلى منفذ المزج الديناميكي، على النحو التالي:
حدِّد منفذ المزيج الديناميكي في
usb_audio_policy_configuration.xml
.حدِّد إمكانية توجيه أجهزة USB إلى منافذ المزيج الديناميكي إما في إعدادات سياسة الصوت أو في طريقتَي AIDL
getAudioPorts
وgetAudioRoutes
.
اطّلِع على التنفيذ المرجعي لواجهة برمجة التطبيقات لصوت USB ضمن hardware/libhardware/modules/usbaudio
.
اطّلِع على مثال على منفذ مزيج ديناميكي في frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml
.
سمة تشغيل المحتوى بدقة 1:1
سمة تشغيل المحتوى بدقة النقطة والفاصل هي سمة اختيارية ولا تتوفّر إلا في تنفيذ 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).