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

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

پرچم هدف
audioUseDynamicRouting در فایل پیکربندی سرویس خودرو برای فعال کردن مسیریابی AAOS تعریف شده است. پیکربندی باید روی true تنظیم شود. هنگامی که false ، مسیریابی و بسیاری از CarAudioService غیرفعال می شود و سیستم عامل به رفتار پیش فرض تشریح شده در پیکربندی خط مشی های صوتی برمی گردد.
audioUseCarVolumeGroupMuting در فایل پیکربندی سرویس خودرو برای فعال کردن بی‌صدا کردن گروه‌های حجم جداگانه تعریف شده است. وقتی روی false (مقدار پیش‌فرض) تنظیم می‌شود، نادیده گرفتن گروه‌های حجم جداگانه غیرفعال می‌شود. در عوض، بی‌صدا کردن، بی‌صدا کردن اصلی را تغییر می‌دهد. وقتی روی true تنظیم شود، بی‌صدا کردن گروه حجم خودرو فعال می‌شود و هر گروه حجم جداگانه را می‌توان به طور جداگانه بی‌صدا کرد. هنگامی که true ، نادیده گرفتن گروه صدا باید در HAL کنترل صوتی اجرا شود.
audioUseHalDuckingSignals در فایل پیکربندی سرویس خودرو تعریف شده است تا IAudioControl#onDevicesToDuckChange API را فعال کند تا به HAL اطلاع دهد که چه زمانی باید رد شود. وقتی true (مقدار پیش‌فرض)، API سیگنال‌هایی را دریافت می‌کند که نشان می‌دهد کدام دستگاه‌های خروجی باید فوکوس کنند و چه کاربردهایی تمرکز دارند. وقتی false ، API فراخوانی نمی شود. API فراخوانی نمی شود مگر اینکه Audio Control HAL داکینگ را اجرا کند.
config_oemCarService این نام مؤلفه برای سرویس سفارشی سازی OEM است که در فایل پیکربندی سرویس خودرو تعریف شده است. OEM ها می توانند اجرای این سرویس را برای سفارشی کردن اقدامات خدمات خودرو برای سیاست های مختلف انتخاب کنند. اگر OEM ها اجرای این مؤلفه را انتخاب کنند، باید سرویسی را برای گسترش OemCarService که توسط car-lib در معرض دید قرار می گیرد، پیاده سازی کنند و سپس خدمات مؤلفه مورد نیاز را پیاده سازی کنند. به طور خاص برای خدمات صوتی خودرو، OEM ها می توانند هر یک از خدمات فرعی صوتی را برای مدیریت عملکرد صوتی پیاده سازی کنند. برای جزئیات، به سرویس پلاگین صوتی خودرو مراجعه کنید. اگر نام مؤلفه نامعتبر باشد، 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 (مقدار پیش‌فرض) اندروید حالت جهانی بی‌صدا را در بوت بازیابی می‌کند. هنگامی که audioUseCarVolumeGroupMuting true باشد، این تاثیری بر تداوم تغییرات بی‌صدا نمی‌گذارد، زیرا تغییرات بی‌صدا بر اساس گروه‌های حجم جداگانه است. مقدار پیش‌فرض روی true تنظیم می‌شود و باید زمانی که مستر بی‌صدا برای دستگاهی وجود نداشته باشد، بازنویسی شود.
audioVolumeKeyEventTimeoutMs

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

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

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

audioUseCarVolumeGroupEvent در فایل پیکربندی سرویس خودرو، پیکربندی برای فعال کردن رویدادهای برگشت به تماس برای گروه‌های حجمی تعریف شده است. وقتی true ، مشتریان از طریق ICarVolumeGroupEvent به رویدادهایی که بر گروه‌های حجم تأثیر می‌گذارند، پاسخ تماس دریافت می‌کنند. هنگامی که فعال است:

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

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

RRO های سرویس خودرو

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

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

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