پیکربندی صوتی پرچم های AAOS، پیکربندی صوتی پرچم های AAOS

سیستم عامل اندروید اتوموتیو (AAOS) از پرچم‌ها و پیکربندی‌هایی برای فعال کردن ویژگی‌های مختلف استفاده می‌کند، از مسیریابی پویا گرفته تا پرچم‌های ویژگی عمومی‌تر، مانند کنترل صدا از سرویس خودرو. پرچم‌های پیکربندی فعلی AAOS برای مدیریت صدا در اینجا شرح داده شده‌اند.

پرچم هدف
audioUseDynamicRouting در فایل پیکربندی سرویس خودرو، گزینه Enable AAOS routing تعریف شده است. پیکربندی باید روی true تنظیم شود. وقتی false ، مسیریابی و بخش عمده‌ای از CarAudioService غیرفعال می‌شوند و سیستم عامل به رفتار پیش‌فرض شرح داده شده در Configuration audio policies برمی‌گردد.
useCoreAudioRouting در فایل پیکربندی سرویس خودرو تعریف شده است تا مدیریت مسیریابی صوتی هسته AAOS را فعال کند . وقتی مقدار آن روی true تنظیم شود، سرویس صوتی خودرو از تعاریف پیکربندی تنظیم شده با موتور سیاست صوتی قابل تنظیم استفاده می‌کند. اگر مقدار آن روی false تنظیم شود، مدیریت مسیریابی به استفاده از تعریف ترکیب سیاست صوتی پویای سرویس صوتی خودرو که با استفاده از audioUseDynamicRouting پیکربندی شده است، بازمی‌گردد.
useCoreAudioVolume در فایل پیکربندی سرویس خودرو تعریف شده است تا مدیریت حجم صدای هسته AAOS را فعال کند . وقتی مقدار روی true تنظیم شود، سرویس صدای خودرو از تعاریف گروه‌های حجم صدا که با موتور سیاست صوتی قابل تنظیم تنظیم شده‌اند استفاده می‌کند. اگر مقدار روی false تنظیم شود، مدیریت حجم صدا به استفاده از تعریف گروه حجم صدای پیش‌فرض سرویس صدای خودرو که با استفاده از audioUseDynamicRouting پیکربندی شده است، برمی‌گردد.
audioUseCarVolumeGroupMuting در فایل پیکربندی سرویس خودرو تعریف شده است تا بی‌صدا کردن گروه‌های صدای مجزا را فعال کند. وقتی روی false تنظیم شود (مقدار پیش‌فرض)، بی‌صدا کردن گروه‌های صدای مجزا غیرفعال می‌شود. در عوض، بی‌صدا کردن، بی‌صدا کردن اصلی را تغییر می‌دهد. وقتی روی true تنظیم شود، بی‌صدا کردن گروه صدای خودرو فعال می‌شود و هر گروه صدای مجزا می‌تواند جداگانه بی‌صدا شود. وقتی true ، بی‌صدا کردن گروه صدای خودرو باید در Audio Control HAL پیاده‌سازی شود.
audioUseHalDuckingSignals در فایل پیکربندی سرویس خودرو تعریف شده است تا API مربوط به IAudioControl#onDevicesToDuckChange را قادر سازد تا به HAL اطلاع دهد چه زمانی باید از حالت سکون خارج شود. وقتی true (مقدار پیش‌فرض) باشد، API سیگنال‌هایی دریافت می‌کند که نشان می‌دهد کدام دستگاه‌های خروجی باید از حالت سکون خارج شوند و چه کاربردهایی فوکوس را نگه می‌دارند. وقتی false ، API فراخوانی نمی‌شود. API فراخوانی نمی‌شود مگر اینکه Audio Control HAL حالت سکون را پیاده‌سازی کند.
config_oemCarService این نام کامپوننت برای سرویس سفارشی‌سازی OEM است که در فایل پیکربندی سرویس خودرو تعریف شده است. تولیدکنندگان اصلی تجهیزات می‌توانند این سرویس را برای سفارشی‌سازی اقدامات سرویس خودرو برای سیاست‌های مختلف پیاده‌سازی کنند. اگر تولیدکنندگان اصلی تجهیزات تصمیم به پیاده‌سازی این کامپوننت بگیرند، باید سرویسی را برای گسترش OemCarService که توسط car-lib ارائه می‌شود، پیاده‌سازی کنند و سپس سرویس‌های کامپوننت مورد نیاز را پیاده‌سازی کنند. به‌طور خاص برای سرویس صوتی خودرو، تولیدکنندگان اصلی تجهیزات می‌توانند هر یک از زیرسرویس‌های صوتی را برای مدیریت اقدامات صوتی پیاده‌سازی کنند. برای جزئیات بیشتر، به سرویس افزونه صوتی خودرو مراجعه کنید. اگر نام کامپوننت نامعتبر باشد، CarService به هیچ سرویس OEM متصل نمی‌شود. نام کامپوننت نمی‌تواند یک بسته شخص ثالث باشد. باید از قبل نصب شده باشد.
audioVolumeAdjustmentContextsVersion

در فایل پیکربندی سرویس خودرو تعریف شده است، پیکربندی برای انتخاب نسخه فهرست اولویت زمینه تنظیم صدا.

نسخه ۱ شامل تمام زمینه‌های صوتی، به ترتیب زیر است:

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

نسخه ۲ به ترتیب به زمینه‌های زیر محدود می‌شود.

نسخه پیش‌فرض 1 است.

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState در فایل پیکربندی سرویس خودرو تعریف شده است، پیکربندی برای حفظ حالت بی‌صدای سراسری. وقتی مقدار پیش‌فرض true ، اندروید حالت بی‌صدای سراسری را هنگام بوت بازیابی می‌کند. وقتی audioUseCarVolumeGroupMuting برابر با true باشد، این هیچ تاثیری بر تغییرات بی‌صدای مداوم ندارد زیرا تغییرات بی‌صدا بر اساس گروه‌های صدای مجزا انجام می‌شوند. مقدار پیش‌فرض روی true تنظیم شده است و وقتی بی‌صدای اصلی نباید برای یک دستگاه حفظ شود، باید بازنویسی شود.
audioVolumeKeyEventTimeoutMs

در فایل پیکربندی سرویس خودرو تعریف شده است، پیکربندی برای نشان دادن زمان وقفه بر حسب میلی‌ثانیه در حالی که یک گروه صدای خودرو برای تغییرات کنترل صدا در طول رویدادهای کلید صدا فعال در نظر گرفته می‌شود. این پیکربندی به شرح زیر استفاده می‌شود:

  • از Timeout برای تعیین اینکه آیا یک پخش (میزان صدای مرتبط با میزان استفاده از صدای پخش) پس از توقف پخش، هنوز می‌تواند برای انتخاب خودکار میزان صدا در نظر گرفته شود یا خیر، استفاده می‌شود.
  • همچنین از عبارت «زمان انتظار» به عنوان مدت زمان مکث مورد نیاز بین تنظیم خودکار صدا برای تغییر آنچه کاربر تنظیم می‌کند، استفاده می‌شود.

مقدار پیش‌فرض 3000 میلی‌ثانیه است و باید توسط تولیدکنندگان اصلی تجهیزات (OEM) تنظیم شود تا تجربه کاربری را متناسب کند.

audioUseCarVolumeGroupEvent در فایل پیکربندی سرویس خودرو تعریف شده است، پیکربندی برای فعال کردن رویدادهای پاسخ به تماس به گروه‌های حجمی. وقتی true ، کلاینت‌ها از طریق ICarVolumeGroupEvent به رویدادهایی که بر گروه‌های حجمی تأثیر می‌گذارند، پاسخ به تماس دریافت می‌کنند. وقتی فعال باشد:
  • ما اکیداً توصیه می‌کنیم که فروشندگان IAudioControl#setModuleChangeCallback و IAudioControl#registerGainCallback نیز برای رویدادها و تغییرات در سخت‌افزار صوتی پشتیبانی کنند.
  • وقتی هر دو CarVolumeCallback و CarVolumeGroupEventCallback توسط یک برنامه ثبت شوند، فراخوانی‌های مربوط به شاخص گروه حجم و بی‌صدا کردن گروه حجم فقط از طریق CarVolumeGroupEventCallback انجام می‌شوند. بنابراین، اکیداً توصیه می‌کنیم که همه برنامه‌ها به رابط فراخوانی جدید مهاجرت کنند تا عملکرد ثابتی تضمین شود.
  • مقدار پیش‌فرض false است. توصیه می‌کنیم این مقدار را روی true تنظیم کنید زیرا APIهای پشتیبانی از فراخوانی‌های قدیمی volume منسوخ شده‌اند و به زودی به‌طور کامل حذف خواهند شد.

config_useFixedVolume در frameworks/base/core/res/res/values/config.xml تعریف شده است. باید روی true تنظیم شود تا سرویس صوتی خودرو بتواند کنترل صدا را مدیریت کند. وقتی پرچم config_useFixedVolume تنظیم نشده باشد یا روی false تنظیم شده باشد (مقدار پیش‌فرض)، برنامه‌ها می‌توانند APIهای مدیریت صدا AudioManager را فراخوانی کرده و صدا را بر اساس نوع جریان در میکسر نرم‌افزاری تغییر دهند. این ممکن است به دلیل تأثیر بالقوه بر سایر برنامه‌ها و این واقعیت که تضعیف صدا در میکسر نرم‌افزاری می‌تواند منجر به کاهش بیت‌های قابل توجه موجود در سیگنال هنگام دریافت در تقویت‌کننده سخت‌افزاری شود، نامطلوب باشد. دستگاه‌های جدیدی که پیکربندی نشده‌اند و روی true تنظیم شده‌اند، تغییرات صدا را از طریق APIهای صدا و بی‌صدا AudioManager دریافت می‌کنند.
config_handleVolumeKeysInWindowManager در frameworks/base/core/res/res/values/config.xml تعریف شده است، باید روی true تنظیم شود تا سرویس صوتی خودرو بتواند رویدادهای کلید صدا را رهگیری کند. اگر روی false تنظیم شود (مقدار پیش‌فرض)، رویدادهای کلید صدا می‌توانند به برنامه پیش‌زمینه ارسال شوند و می‌توانند منجر به نتایج نامطلوبی از مدیریت رویداد کلید صدا در خارج از سرویس صوتی خودرو شوند.
audioUseMinMaxActivationVolume در فایل پیکربندی سرویس خودرو تعریف شده است تا حداقل و حداکثر حجم فعال‌سازی را فعال کند. وقتی true ، شاخص افزایش حجم می‌تواند به دلیل مدیریت حداقل و حداکثر حجم فعال‌سازی تنظیم شود. وقتی false (مقدار پیش‌فرض)، حداقل و حداکثر حجم فعال‌سازی اعمال نمی‌شوند.
audioUseFadeManagerConfiguration در فایل پیکربندی سرویس خودرو تعریف شده است تا رفتار از دست دادن فوکوس صوتی اعمال شده توسط سیستم را فعال کند. وقتی true ، چارچوب صوتی خودرو تعاریف پیکربندی محو شدن صدای خودرو را تجزیه می‌کند و FadeManagerConfiguration مربوطه را هنگام ارسال از دست دادن فوکوس صوتی اعمال می‌کند. وقتی مقدار false (مقدار پیش‌فرض)، سیستم هنگام از دست دادن فوکوس صوتی یک برنامه، رفتار محو شدن را اعمال نمی‌کند.

پیکربندی خدمات صوتی خودرو

قبل از اندروید ۱۳، پیکربندی‌های سرویس خودرو با یک پوشش پیکربندی محصول (برای کسب اطلاعات بیشتر، به سفارشی‌سازی ساخت با پوشش‌های منابع مراجعه کنید) برای فایل packages/services/Car/service/res/values/config.xml رونویسی می‌شدند.

PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>

محل فایل پیکربندی از <path_to_overlay> تا محل واقعی باید شامل packages/services/Car/service/res/values/ باشد.

RRO های خدمات خودرو

از اندروید ۱۳ به بعد، AAOS از Runtime resource overlays پشتیبانی می‌کند. از یک RRO برای تغییر مقدار پیکربندی صدای خودرو استفاده کنید. برای مثال، به RROها برای مرجع automobile 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>

فایل resource overlay manifest که در device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml تعریف شده است، شامل targetPackage تنظیم شده به صورت com.android.car.updatable است.

برای اطلاعات بیشتر به این منابع مراجعه کنید:

API با قابلیت فعال‌سازی

اگر ویژگی روی دستگاه فعال باشد، این متد true در غیر این صورت false را برمی‌گرداند. در API 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