أعلام تكوين الصوت AAOS، أعلام تكوين الصوت AAOS

يستخدم نظام التشغيل Android Automotive OS (AAOS) العلامات والتكوينات لتمكين ميزات مختلفة، بدءًا من التوجيه الديناميكي إلى علامات الميزات الأكثر عمومية، مثل التحكم في مستوى الصوت من خدمة السيارة. يتم هنا وصف علامات تكوين AAOS الحالية لإدارة الصوت.

علَم غاية
audioUseDynamicRouting تم تحديده في ملف تكوين خدمة السيارة لتمكين توجيه AAOS . يجب ضبط التكوين على true . عند false ، يتم تعطيل التوجيه والكثير من CarAudioService ويعود نظام التشغيل إلى السلوك الافتراضي الموضح في تكوين سياسات الصوت .
audioUseCarVolumeGroupMuting تم تحديده في ملف تكوين خدمة السيارة لتمكين كتم صوت مجموعات الصوت الفردية. عند التعيين على false (القيمة الافتراضية)، يتم تعطيل كتم مجموعات الصوت الفردية. بدلاً من ذلك، يؤدي كتم الصوت إلى تبديل كتم الصوت الرئيسي. عند التعيين على true ، يتم تمكين كتم صوت مجموعة صوت السيارة ويمكن كتم صوت كل مجموعة صوت فردية بشكل منفصل. عندما يكون true ، يجب تنفيذ كتم صوت مجموعة الصوت في طبقة التحكم بالصوت (HAL) للتحكم بالصوت .
audioUseHalDuckingSignals تم تحديده في ملف تكوين خدمة السيارة لتمكين واجهة برمجة تطبيقات IAudioControl#onDevicesToDuckChange لإبلاغ HAL بموعد التوقف. عندما تكون القيمة true (القيمة الافتراضية)، تتلقى واجهة برمجة التطبيقات (API) إشارات تشير إلى أجهزة الإخراج التي يجب تجنبها والاستخدامات التي تحافظ على التركيز. عندما يكون false ، لا يتم استدعاء API. لا يتم استدعاء واجهة برمجة التطبيقات (API) إلا إذا نفذت طبقة توصيف الأجهزة (HAL) للتحكم في الصوت عملية التهرب.
config_oemCarService وهذا هو المحدد في ملف تكوين خدمة السيارة، وهو اسم المكون لخدمة تخصيص OEM. يمكن لمصنعي المعدات الأصلية اختيار تنفيذ هذه الخدمة لتخصيص إجراءات خدمة السيارة لسياسات مختلفة. إذا اختار مصنعو المعدات الأصلية تنفيذ هذا المكون، فيجب عليهم تنفيذ خدمة لتوسيع OemCarService المكشوفة بواسطة car-lib، ثم تنفيذ خدمات المكونات المطلوبة. بالنسبة لخدمة الصوت في السيارة على وجه التحديد، يمكن لمصنعي المعدات الأصلية تنفيذ أي من الخدمات الصوتية الفرعية لإدارة الإجراء الصوتي. للحصول على التفاصيل، راجع خدمة المكونات الصوتية للسيارة . إذا كان اسم المكون غير صالح، فلن تتصل CarService بأي خدمة OEM. لا يمكن أن يكون اسم المكون عبارة عن حزمة تابعة لجهة خارجية. يجب أن تكون مثبتة مسبقا.
audioVolumeAdjustmentContextsVersion

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

يتضمن الإصدار 1 جميع السياقات الصوتية بالترتيب التالي:

  • NAVIGATION
  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
  • CALL_RING
  • SYSTEM_SOUND
  • SAFETY
  • ALARM
  • NOTIFICATION
  • VEHICLE_STATUSEMERGENCY

يقتصر الإصدار 2 على السياقات التالية، بهذا الترتيب.

الإصدار الافتراضي هو 1 .

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState تم تحديده في ملف تكوين خدمة السيارة، والتكوين للاستمرار في حالة كتم الصوت العامة. عندما يكون true (القيمة الافتراضية)، يستعيد Android حالة كتم الصوت العامة عند التمهيد. عندما تكون audioUseCarVolumeGroupMuting true ، فلن يكون لذلك أي تأثير على تغييرات كتم الصوت المستمرة حيث أن تغييرات كتم الصوت تعتمد على مجموعات صوت فردية. يتم تعيين القيمة الافتراضية على true ويجب استبدالها عندما لا يستمر كتم الصوت الرئيسي للجهاز.
audioVolumeKeyEventTimeoutMs

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

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

القيمة الافتراضية هي 3000 مللي ثانية ويجب تعديلها بواسطة مصنعي المعدات الأصلية لتخصيص تجربة المستخدم.

audioUseCarVolumeGroupEvent تم تحديد التكوين في ملف تكوين خدمة السيارة لتمكين أحداث رد الاتصال لمجموعات الحجم. عندما يكون true ، يتلقى العملاء رد اتصال من خلال ICarVolumeGroupEvent للأحداث التي تؤثر على مجموعات الحجم. عند التمكين:

  • نوصي بشدة أن يدعم البائعون أيضًا IAudioControl#setModuleChangeCallback و IAudioControl#registerGainCallback للأحداث والتغييرات في أجهزة الصوت.
  • عندما يتم تسجيل كل من CarVolumeCallback و CarVolumeGroupEventCallback بواسطة نفس التطبيق، يجب أن يمر فهرس مجموعة وحدات التخزين وعمليات رد الاتصال الصامتة لمجموعة وحدات التخزين من خلال CarVolumeGroupEventCallback فقط . ولذلك، نوصي بشدة بترحيل جميع التطبيقات إلى واجهة رد الاتصال الجديدة لضمان الأداء المتسق.
  • القيمة الافتراضية هي false . نوصي بتعيين هذا على true لأن واجهات برمجة التطبيقات (APIs) لدعم عمليات الاسترجاعات المجمعة القديمة تم إهمالها وستتم إزالتها تمامًا قريبًا.

config_useFixedVolume تم تحديده في frameworks/base/core/res/res/values/config.xml . يجب ضبطه على true للسماح لخدمة الصوت في السيارة بإدارة التحكم في مستوى الصوت. عندما لا يتم تعيين علامة config_useFixedVolume ، أو يتم تعيينها على false (القيمة الافتراضية)، يمكن للتطبيقات استدعاء واجهات برمجة تطبيقات إدارة وحدة التخزين AudioManager وتغيير مستوى الصوت حسب نوع الدفق في خلاط البرامج. قد يكون هذا غير مرغوب فيه بسبب التأثير المحتمل على التطبيقات الأخرى وحقيقة أن تخفيف مستوى الصوت في جهاز مزج البرامج يمكن أن يؤدي إلى عدد أقل من البتات المهمة المتاحة في الإشارة عند استقبالها على مضخم الأجهزة. تتلقى الأجهزة الجديدة التي لم يتم تكوينها والتي تم ضبطها على true " تغييرات في مستوى الصوت من خلال وحدة تخزين AudioManager وواجهات برمجة تطبيقات كتم الصوت.
config_handleVolumeKeysInWindowManager تم تحديده في frameworks/base/core/res/res/values/config.xml ، ويجب ضبطه على true للسماح لخدمة الصوت في السيارة باعتراض أحداث مفتاح مستوى الصوت. في حالة التعيين على false (القيمة الافتراضية)، يمكن إعادة توجيه أحداث مفتاح مستوى الصوت إلى التطبيق الأمامي ويمكن أن تؤدي إلى نتائج عكسية من إدارة أحداث مفتاح مستوى الصوت خارج خدمة الصوت في السيارة.

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

قبل Android 13، تمت الكتابة فوق تكوينات خدمة السيارة باستخدام تراكب تكوين المنتج (لمعرفة المزيد، راجع تخصيص البنية باستخدام تراكبات الموارد ) للملف packages/services/Car/service/res/values/config.xml .

PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>

يجب أن يتضمن موقع ملف التكوين من <path_to_overlay> إلى الموقع الفعلي packages/services/Car/service/res/values/ .

RROs لخدمة السيارات

منذ Android 13، يدعم AAOS تراكبات موارد وقت التشغيل . استخدم RRO لتغيير قيمة تكوين صوت السيارة. على سبيل المثال، راجع RROs لمرجع cuttlefish الخاص بالسيارات في device/google/cuttlefish/shared/auto/rro_overlay/ . تم تجاوز تكوين audioUseDynamicRouting في device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml .

<resources>
    <bool name="audioUseDynamicRouting">true</bool>
...

خريطة تراكب الموارد موجودة في device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/xml/overlays.xml :

<overlay>
...
  <item target="bool/audioUseDynamicRouting"
value="@bool/audioUseDynamicRouting" />
...
</overlay>

يحتوي بيان تراكب الموارد المحدد في device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml على حزمة targetPackage التي تم تعيينها كـ com.android.car.updatable .

انظر هذه الموارد لمزيد من المعلومات:

واجهة برمجة التطبيقات الممكّنة بالميزات

تُرجع الطريقة true إذا كانت الميزة ممكّنة على الجهاز، وإلا false . في CarAudioManager#isAudioFeatureEnabled API، يجب أن تكون المعلمة التي تم تمريرها واحدة مما يلي:

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING