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