توجيه صوت متعدد المناطق

تستخدم "خدمة الصوت في السيارة" سياسة "الصوت الديناميكي" (Core Audio) لتسهيل الاستخدام الحالات في السيارات.

  • تشغيل الصوت بشكل منفصل لكل راكب، ويُشار إليه باسم "الصوت المتعدّد المناطق" التي تسمح فيها كل منطقة بالتشغيل المتزامن للصوت.

  • إعداد منطقة الصوت الديناميكية.

  • بث الصوت في المنطقة الأساسية للركّاب

  • المرآة الصوتية للراكب

وفي كل حالة استخدام، تستخدم خدمة الصوت في السيارة سياسة الصوت الديناميكي من أجل توجيه الصوت تلقائيًا إلى جهاز الإخراج المخصص

صوت متعدّد المناطق

تتيح ميزة الصوت المتعدّد المناطق لعدّة مستخدمين التفاعل مع نظام التشغيل Android Automotive في الوقت نفسه. حاسمة مجموعة من أجهزة إخراج الصوت مرتبطة بمنطقة، وتحتفظ كل منطقة بالصوت التركيز ومستوى الصوت. يمكن للركّاب الاستماع إلى صوت السائق ويستمع إلى مصدر آخر في المنطقة الأساسية (عادةً في المقصورة الرئيسية).

بنية الصوت المتعدّد المناطق

بنية خدمات الصوت في السيارة

الشكل 1. بنية الخدمات الصوتية للسيارات

مناطق الصوت في السيارة عبارة عن تجريد لمخرجات الصوت والتركيز الصوتي وغيرها من إعدادات الصوت، والتي يمكن إدارتها كلّها بشكل مستقل. لأغراض التوجيه، تُعرف كل منطقة بأنها مجموعة من أجهزة ناقل الإخراج الصوتي كما هو موضح في إعداد سياسة الصوت تختلف الأجهزة باختلاف تعريف منطقة الصوت. في الشكل 1، تنتمي أجهزة الحافلات من 1 إلى 5 إلى المنطقة صفر، وأجهزة الحافلات من 6 إلى 8 ينتمي إلى المنطقة الأولى، وتنتمي أجهزة الحافلات من 9 إلى 11 إلى المنطقة الثانية.

إعدادات الصوت في السيارة

يتم عادةً تخصيص أجهزة إخراج الصوت لمنطقة صوت واحدة. كل منطقة صوتية هي محددة في car_audio_configuration.xml. يعرض مقتطف الرمز التالي سيارة. تكوين الصوت للشكل 1:

<carAudioConfiguration version="3">
    <zones>
        <zone name="Zone0" audioZneId="0" occupantZoneId="0">
            <zoneConfigs>
                <zoneConfig name="config0" isDefault="true">
                   <volumeGoups>
                        <group>
                            <device address="bus_1">
                                <context context="music"/>
                            </device>
                        </group>
                        <group>
                            <device address="bus_2">
                                <context context="navigation"/>
                            </device>
                        </group>
                        ...
                    </volumeGroups>
                </zoneConfig>
            </zoneConfigs>
        </zone>
        <zone name="Zone1" audioZoneId="1" occupantZoneId="1">
            <zoneConfigs>
                <zoneConfig name="config0" isDefault="true">
                    <volumeGroups>
                        <group>
                            <device address="bus_6">
                                <context context="music"/>
                            </device>
                        </group>
                        <group>
                            <device address="bus_7">
                                <context context="navigation"/>
                           </device>
                       </group>
                       ...
                    </volumeGroups>
                </zoneConfig>
            </zoneConfigs>
        </zone>
        ...
    ...
   </zones>
</carAudioConfiguration>

occupantZoneId هو تعريف لخدمة السيارات يديره CarOccupantZoneManager إنه يُستخدم في السيارات لتحديد تعيين لمستخدم في السيارة إلى مكان المقعد المحدد. تُعرِّف السمة CarOccupantZoneService أيضًا بدءًا من منطقة الإشغال إلى الشاشات، والأجهزة الملحقة الأخرى، والمستخدم بمجرد تسجيل دخول المستخدم إلى شاشة عرض. تحتوي منطقة الصوت على ما يلي:

  • معرّف منطقة الصوت ومعرّف منطقة الإشغال

    • خرائط المنطقة الصوتية لمنطقة الإشغال (المقعد والشاشات والأجهزة الملحقة الأخرى)
    • يمكنك ربط رقم تعريف المستخدم الذي يتم تخصيصه مع منطقة صوتية عند تسجيل الدخول.
  • قائمة بإعدادات ضبط الصوت: لكل تهيئة صوتية مجموعة من مجموعات مستوى الصوت. تتضمن كل مجموعة مستوى صوت مجموعة من أجهزة الناقل الصوتي.

    • عند تغيير مستوى الصوت، يتم التحكّم في جميع الأجهزة السماعية في مجموعة معيّنة بالطريقة نفسها.

    • يتم تخصيص قائمة بسمات الصوت لكل جهاز سماعي. هذا النمط لإنشاء مزيج من السياسات الصوتية مع سمات الصوت التي تم تعيينها.

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

سير عمل تسجيل دخول الراكب من خلال ميزة الصوت في مناطق متعدّدة

يوضح مخطط التسلسل أدناه تدفق تمكين التوجيه الصوتي عندما سجلات الراكب في العرض الخاص به:

صورة

الشكل 2.

وفي هذا التسلسل، يتم نشر معلومات تسجيل دخول المستخدم إلى خدمة الإعدادات الصوتية للسيارة من خلال أو خدمة منطقة الإشغال.

  1. تستخدم خدمة الصوت في السيارة (لمنطقة صوت محددة) AudioPolicy#removeUserIdDeviceAffinity API لإزالة جهاز المستخدم التقارب. وتحصل واجهة برمجة التطبيقات هذه على رقم تعريف مستخدِم. وفي هذه الحالة، تمثل المنطقة السابقة المستخدم.

  2. تعيّن واجهة برمجة التطبيقات AudioPolicy#setUserIdDeviceAffinity للمستخدم الجديد المنطقة التي تأخذ رقم تعريف المستخدم وجميع الأجهزة لمنطقة معيّنة التكوين.

إعدادات المنطقة الديناميكية

في Android 14، يتم تغيير إعدادات المنطقة الديناميكية قد تم طرحها للسماح للمصنّعين الأصليين للأجهزة بتهيئة مجموعات مختلفة من الأجهزة للركاب. تتيح حالة الاستخدام للركّاب في المقعد الخلفي التبديل بين المقعد الخلفي. مكبّر صوت في مسند الرأس وملحق بسماعة الرأس في المقعد الخلفي.

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

إعداد المنطقة الديناميكية
سير العمل

الشكل 3. سير عمل إعدادات المنطقة الديناميكية

يوضح الشكل 3 بنية ضبط المنطقة الديناميكية. سير العمل. تحتوي منطقة الصوت 1 على الإعدادَين Config 0 وConfig 1، والمرتبطة بمكبّر صوت جهاز إخراج ومسند الرأس، على التوالي.

وعند تسجيل الدخول، يتم تعيين الإعدادات التلقائية للمستخدم تلقائيًا. عندما يختار المستخدم تغيير عمليات التهيئة، عادةً من خلال واجهة مستخدم النظام، تنفذ خدمة صوت السيارة التبديل بين الإعدادين. في هذه الدورة، يتم تبديل جهاز الإخراج بين مكبِّر الصوت Z1 ومسند الرأس Z1.

يعرض مقتطف الرمز أدناه إعداد هذه المنطقة الديناميكية.

<carAudioConfiguration version="3">
    <zones>
        <zone name="Zone1" audioZoneId="1" occupantZoneId="1">
            <zoneConfigs>
                <zoneConfig name="Zone 1 Config 0" isDefault="true">
                    <volumeGroups>
                        <group>
                            <device address="bus_100">
                                <context context="music"/>
                                    ***
                            </device>
                        </group>
                    </volumeGroups>
                </zoneConfig>
                <zoneConfig name="Zone 1 Config 1">
                    <volumeGroups>
                        <group>
                            <device address="bus_101">
                                <context context="music"/>
                                    ***
                            </device>
                        </group>
                    </volumeGroups>
                </zoneConfig>
            </zoneConfigs>
        </zone>
    </zones>

لتسهيل إدارة إعدادات الصوت، يستخدم مدير الصوت في السيارة تعرض واجهات برمجة التطبيقات لإدارة التهيئات:

  • عمليات ضبط طلب البحث المتاحة لإحدى المناطق
  • إعداد طلب البحث المضبوط حاليًا لإحدى المناطق.
  • انتقِل إلى إعداد مختلف.

يمكن لتطبيق أو خدمة واجهة مستخدم النظام استخدام واجهة برمجة التطبيقات هذه لإدارة تهيئة ومنطقة الصوت كما هو موضح في الشكل 4. تعرض واجهة برمجة التطبيقات Query API الملفَين للراكب. يمكن للمستخدم تحديد تهيئة مختلفة من خلال النقر على أمر والتهيئة المطلوبة.

إعداد المنطقة الديناميكية
سير العمل

الشكل 4. سير عمل إعدادات المنطقة الديناميكية

البث الصوتي الخاص بالراكب في المنطقة الأساسية

ميزة البث الصوتي الخاصة بالركّاب في المنطقة الأساسية هي ميزة متوفّرة في Android 14 تسمح للركّاب ببث أصوات الوسائط في المنطقة الأساسية. في هذه الدورة، طريقة يمكن من خلالها توجيه صوت الوسائط لدى الراكب إلى المقصورة الرئيسية أثناء ويظل السائق في التحكم الكامل.

يوضح الشكل التالي نسخة مبسطة من بنية الوحدة الأساسية البث الصوتي لوسائط ركاب المنطقة.

إعداد المنطقة الديناميكية
سير العمل

الشكل 5. سير عمل إعدادات المنطقة الديناميكية

توضح الصورة أنه تتم مشاركة جهاز إخراج الوسائط لبرنامج التشغيل مع الراكب، هذا يحدث فقط أثناء انتقال الراكب إلى المنطقة الأساسية. الحالي. كما تُستخدم سياسة الصوت الديناميكي لإدارة التوجيه الصوتي لبرنامج التشغيل ولكن لا يتم تطبيق أي تغييرات على التقارب بين الأجهزة لبرنامج التشغيل. بالنسبة يتم تغيير قائمة أجهزة إخراج الصوت للراكب على النحو التالي:

  • تمت إزالة جهاز إخراج الوسائط للراكب من قائمة الأجهزة.
  • تمت إضافة جهاز إخراج الوسائط للسائق إلى قائمة الأجهزة
  • تبقى أجهزة الإخراج المتبقية في المناطق الصوتية للركاب ضمن قائمة الأجهزة.

يتم تخصيص هذه القائمة الجديدة للأجهزة للراكب من خلال واجهة برمجة تطبيقات AudioPolicy#setUserIdDeviceAffinity. المعلمات التي يتم تمريرها إلى واجهة برمجة التطبيقات هي قائمة الأجهزة ومعرّف المستخدم للراكب. عند تشغيل صوت النظام الصوتي طلبات بحث خدمة السياسات التي سيتم اختيارها من أجل مقطع وسائط المرتبطة بالراكب، ومزيج الصوت للوسائط المرتبط اختيار المنطقة.

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

المرآة الصوتية لمنطقة الركاب

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

توجيه النسخ المطابق للصوت

يجب توفّر راكبَين على الأقل لتفعيل ميزة "المزامنة على الجهاز وفي السحابة الإلكترونية". نتيجة لذلك، أُنشئت مكتبة مات بلوت ليب في ونتيجة لذلك، فإن تكوين صوت يتضمن منطقتي صوت فقط للراكب جهاز إخراج نسخة مطابقة. باستخدام التعريف أعلاه، يمكن إجراء نسختين مطابقتين إمكانية بدء الجلسات.

يوضّح الشكل أدناه مخطّطًا بيانيًا مبسَّطًا لميزة "النسخ المطابق للصوت" في عدة مناطق. بين راكبَين. يتم توجيه الصوت الصادر من كلا الراكبَين إلى مرآة صوتية. جهاز bus_1000. تكرّر HAL الصوت الإشارة في مناطق المصدر.

إعداد المنطقة الديناميكية
سير العمل

الشكل 6. سير عمل إعدادات المنطقة الديناميكية

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

  • تمت إزالة جهاز إخراج الوسائط للراكب من قائمة الأجهزة.
  • تمت إضافة جهاز إخراج الصوت إلى قائمة الأجهزة.
  • تبقى أجهزة الإخراج المتبقية في المنطقة الصوتية للركاب ضمن قائمة الأجهزة.

وفي قائمة الأجهزة، يتم استدعاء واجهة برمجة التطبيقات مع القائمة المحدثة للأجهزة معرّف المستخدم الخاص بالراكب. تقدم الصورة التالية مخططًا تسلسليًا النسخ المطابق للمحتوى الصوتي.

سير عمل النسخ المطابق للصوت

الشكل 7. سير عمل النسخ المطابق للمحتوى الصوتي

في الشكل 7، تكون واجهات برمجة التطبيقات (API) الخاصة بمدير الصوت في السيارة لإدارة النسخ المطابق للصوت من خدمة نظام الوسائط. وبالتحديد، واجهة برمجة التطبيقات التي تتيح استخدام المحتوى الصوتي النسخ المطابق للمستخدم 1 والمستخدم 2، CarAudioManager#enableMirrorForAudioZones.

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

في الصورة أعلاه، ترسل خدمة الصوت في السيارة mirroring_src=bus_1000;mirroring_dest=bus_10,bus_20

أين أو

bus_1000 هي الحافلة المصدر وbus_10 وbus_20 هما الوجهة للحافلات.

ولا يظهر في مخطط التسلسل هو الإشارة التي يتم إرسالها عبر AudioManager#setParameters API التي تصل إلى HAL من خلال الصوت خدمة ما.

عند إيقاف انعكاس الصوت، يتم إرسال الإشارة التالية، mirroring_src=bus_1000;mirroring=off ويمكن أن يستخدم بروتوكول HAL هذه الإشارة إيقاف تكرار الصوت عند عدم تفعيل النسخ المطابق للصوت. لتحديد الصوت النسخ المطابق للأجهزة، يحتوي ملف تكوين صوت السيارة على قسم يسمى mirroringDevices، كما هو موضّح في المقتطف أدناه.

في هذا المقتطف، تم تحديد جهازين للنسخ المطابق، هما bus_1000 وbus_2000، بحيث يمكن لأربعة ركّاب استخدام ميزة "المزامنة على الجهاز وفي السحابة الإلكترونية".

<carAudioConfiguration version="3">
   <mirroringDevices>
       <mirroringDevice address="bus_1000"/>
       <mirroringDevice address="bus_2000"/>
   </mirroringDevices>
  <zones>
    ....
  </zones>
</carAudioConfiguration>