علامات AAOS لإعدادات الصوت

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

علم الغرض
audioUseDynamicRouting يتم تحديد هذه العلامة في ملف إعدادات خدمة السيارة لتفعيل توجيه AAOS. يجب ضبط الإعداد على true. عند ضبطه على false، يتم إيقاف التوجيه والكثير من CarAudioService، ويعود نظام التشغيل إلى السلوك التلقائي الموضّح في ضبط سياسات الصوت.
useCoreAudioRouting يتم تحديد هذه العلامة في ملف إعدادات خدمة السيارة لـ تفعيل إدارة توجيه الصوت الأساسي في AAOS. عند ضبط القيمة على true، تستخدم خدمة الصوت في السيارة تعريفات الإعدادات التي تم ضبطها باستخدام محرّك سياسة الصوت القابل للإعداد. إذا تم ضبط القيمة على false، تعود إدارة التوجيه إلى استخدام تعريف مزيج سياسة الصوت الديناميكية لخدمة الصوت في السيارة كما تم ضبطه باستخدام audioUseDynamicRouting.
useCoreAudioVolume يتم تحديد هذه العلامة في ملف إعدادات خدمة السيارة لتفعيل إدارة مستوى الصوت الأساسي في AAOS. عند ضبط القيمة على true، تستخدم خدمة الصوت في السيارة تعريفات مجموعات مستوى الصوت التي تم ضبطها باستخدام محرّك سياسة الصوت القابل للإعداد. إذا تم ضبط القيمة على false، تعود إدارة مستوى الصوت إلى استخدام تعريف مجموعة مستوى الصوت التلقائية لخدمة الصوت في السيارة كما تم ضبطه باستخدام audioUseDynamicRouting.
audioUseCarVolumeGroupMuting يتم تحديد هذه العلامة في ملف إعدادات خدمة السيارة لتفعيل كتم مجموعات مستوى الصوت الفردية. عند ضبطها على false (القيمة التلقائية)، يتم إيقاف كتم مجموعات مستوى الصوت الفردية. بدلاً من ذلك، يؤدي الكتم إلى تبديل الكتم الرئيسي. عند ضبطها على true، يتم تفعيل كتم مجموعة مستوى الصوت في السيارة ويمكن كتم كل مجموعة مستوى صوت فردية على حدة. عند ضبطها على true، يجب تنفيذ كتم مجموعة مستوى الصوت في Audio Control HAL.
audioUseHalDuckingSignals يتم تحديد هذه العلامة في ملف إعدادات خدمة السيارة لتفعيل واجهة برمجة التطبيقات IAudioControl#onDevicesToDuckChange لإبلاغ HAL بموعد خفض مستوى الصوت. عند ضبطها على true (القيمة التلقائية)، تتلقّى واجهة برمجة التطبيقات إشارات تشير إلى أجهزة الإخراج التي يجب خفض مستوى صوتها والاستخدامات التي تحتفظ بالتركيز. عند ضبطها على false، لا يتم طلب واجهة برمجة التطبيقات. لا يتم طلب واجهة برمجة التطبيقات إلا إذا نفّذت Audio Control HAL ميزة خفض مستوى الصوت.
config_oemCarService يتم تحديد هذه العلامة في ملف إعدادات خدمة السيارة، وهي اسم المكوّن لـ خدمة التخصيص من قِبل الشركة المصنّعة للمعدات الأصلية. يمكن للشركات المصنّعة للمعدات الأصلية اختيار تنفيذ هذه الخدمة لـ تخصيص إجراءات خدمة السيارة لسياسات مختلفة. إذا اختارت الشركات المصنّعة للمعدات الأصلية تنفيذ هذا المكوّن، عليها تنفيذ خدمة لتوسيع OemCarService التي تعرضها car-lib، ثم تنفيذ خدمات المكوّنات المطلوبة. بالنسبة إلى خدمة الصوت في السيارة على وجه التحديد، يمكن للشركات المصنّعة للمعدات الأصلية تنفيذ أي من الخدمات الفرعية الصوتية لإدارة إجراء الصوت. لمعرفة التفاصيل، يُرجى الاطّلاع على Car Audio Plugin Service. إذا كان اسم المكوّن غير صالح، لن تتصل CarService بأي خدمة من خدمات الشركة المصنّعة للمعدات الأصلية. لا يمكن أن يكون اسم المكوّن حزمة تابعة لجهة خارجية. يجب أن يكون مثبّتًا مسبقًا.
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 لأنّ واجهات برمجة التطبيقات التي تتيح معاودات الاتصال القديمة بمستوى الصوت أصبحت متوقّفة نهائيًا وسيتم إزالتها قريبًا تمامًا.

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 (القيمة التلقائية)، يمكن إعادة توجيه أحداث مفتاح مستوى الصوت إلى التطبيق الذي يظهر في المقدّمة ويمكن أن يؤدي ذلك إلى نتائج سلبية من إدارة أحداث مفتاح مستوى الصوت خارج خدمة الصوت في السيارة.
audioUseMinMaxActivationVolume يتم تحديد هذه العلامة في ملف إعدادات خدمة السيارة لتفعيل الحدّ الأدنى والأقصى لمستوى صوت التفعيل. عند ضبطها على true، يمكن تعديل فهرس زيادة مستوى الصوت بسبب إدارة الحدّ الأدنى والأقصى لمستوى صوت التفعيل. عند ضبطها على false (القيمة التلقائية)، لا يسري الحدّ الأدنى والأقصى لمستوى صوت التفعيل.
audioUseFadeManagerConfiguration يتم تحديد هذه العلامة في ملف إعداد خدمة السيارة لتفعيل سلوك فقدان أولويّة الصوت المفروض من النظام. عند ضبطها على true، يحلّل إطار عمل الصوت في السيارة تعريفات إعدادات التلاشي الصوتي في السيارة ويطبّق FadeManagerConfiguration المعني عند إرسال إشعار بفقدان أولويّة الصوت. عند ضبطها على 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/.

تراكبات الموارد في وقت التشغيل (RRO) لخدمة السيارة

بدءًا من Android 13، يتيح نظام التشغيل AAOS استخدام تراكبات الموارد في وقت التشغيل. استخدِم تراكب الموارد في وقت التشغيل لتغيير قيمة إعدادات الصوت في السيارة. على سبيل المثال، اطّلِع على تراكبات الموارد في وقت التشغيل للمرجع في السيارات 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، يجب أن تكون المَعلمة التي تم تمريرها إحدى القيم التالية:

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING