音訊設定 AAOS 旗標

Android Automotive OS (AAOS) 使用旗標和設定啟用不同功能,從動態路徑規劃到更通用的功能旗標,例如透過車輛服務控制音量。如要瞭解音訊管理目前的 AAOS 設定旗標,請參閱本文。

檢舉 目的
audioUseDynamicRouting 在車輛服務設定檔中定義,以啟用 AAOS 路線規劃。設定必須設為 true。當 false 時,CarAudioService 和大部分的路由都會停用,OS 會回復為「設定音訊政策」一文所述的預設行為。
useCoreAudioRouting 在車輛服務設定檔中定義,啟用 AAOS 核心音訊路徑管理。如果值設為 true,車輛音訊服務會使用可設定音訊政策引擎設定的設定定義。如果值設為 false,路由管理會改用車輛音訊服務動態音訊政策組合定義,如使用 audioUseDynamicRouting 設定。
useCoreAudioVolume 在車輛服務設定檔中定義,以啟用 AAOS 核心音量管理。如果值設為 true,車輛音訊服務會使用可設定的音訊政策引擎設定的音量群組定義。如果值設為 false,音量管理就會改用車輛音訊服務的預設音量群組定義,並使用 audioUseDynamicRouting 進行設定。
audioUseCarVolumeGroupMuting 在車輛服務設定檔中定義,可啟用個別音量群組的靜音功能。如果設為 false (預設值),系統就會停用個別音量群組的靜音功能。而是會切換為靜音模式。 設為 true 時,系統會啟用車輛音量群組靜音功能,且每個音量群組都可以個別設為靜音。當 true 時,必須在 Audio Control HAL 中實作音量群組靜音功能。
audioUseHalDuckingSignals 在車輛服務設定檔中定義,可讓 IAudioControl#onDevicesToDuckChange API 在需要時通知 HAL 進入休眠狀態。如果設為 true (預設值),API 會收到信號,指出要迴避的輸出裝置,以及哪些用途會保留焦點。當 false 時,不會呼叫 API。除非 Audio Control HAL 實作了迴避功能,否則不會呼叫 API。
config_oemCarService 這是 OEM 自訂服務的元件名稱,定義於車輛服務設定檔中。原始設備製造商可以選擇實作這項服務,為不同政策自訂車輛服務動作。如果原始設備製造商 (OEM) 選擇實作這個元件,就必須實作服務來擴充車輛程式庫公開的 OemCarService,然後實作必要的元件服務。就車輛音訊服務而言,原始設備製造商可以實作任何音訊子服務,藉此管理音訊動作。詳情請參閱「車輛音訊外掛程式服務」。如果元件名稱無效,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 會在開機時還原全域靜音狀態。當 audioUseCarVolumeGroupMutingtrue 時,這不會影響靜音變更的持續性,因為靜音變更是以個別音量群組為準。預設值設為 true,如果裝置不應保留主靜音設定,則必須覆寫這個值。
audioVolumeKeyEventTimeoutMs

在車輛服務設定檔中定義,設定用於指出車輛音量群組在音量按鍵事件期間,被視為音量控制變更活動時的逾時時間 (以毫秒為單位)。設定用途如下:

  • 逾時是用來判斷播放停止後,是否仍可將播放內容 (與播放內容音訊用量相關聯的音量) 納入自動音量選取考量。
  • 此外,系統也會將逾時時間做為自動音量調整之間的暫停時間,以便變更使用者調整的項目。

預設值為 3000 毫秒,OEM 應調整此值,以配合使用者體驗。

audioUseCarVolumeGroupEvent 在車輛服務設定檔中定義,可啟用音量群組的回呼事件。當 true 時,用戶端會透過 ICarVolumeGroupEvent 接收回呼,瞭解影響音量群組的事件。啟用後:
  • 強烈建議供應商也支援IAudioControl#setModuleChangeCallbackIAudioControl#registerGainCallback,以處理音訊硬體事件和變更。
  • 如果同一個應用程式同時註冊 CarVolumeCallbackCarVolumeGroupEventCallback,音量群組索引和音量群組靜音回呼會透過 CarVolumeGroupEventCallback 傳送。因此,我們強烈建議所有應用程式遷移至新的回呼介面,確保成效一致。
  • 預設值為 false。建議您將此值設為 true,因為支援舊版音量回呼的 API 已淘汰,且即將完全移除。

config_useFixedVolume 定義於 frameworks/base/core/res/res/values/config.xml。 必須設為 true,車輛音訊服務才能管理音量控制。如果未設定 config_useFixedVolume 標記,或設為 false (預設值),應用程式可以呼叫 AudioManager 音量管理 API,並在軟體混音器中依串流類型變更音量。這可能會對其他應用程式造成影響,而且軟體混音器中的音量衰減可能會導致訊號在硬體放大器接收時,可用的有效位元較少,因此可能不盡理想。尚未設定的新裝置,且已設為透過 AudioManager 音量和靜音 API 接收音量變更。true
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 支援執行階段資源疊加。使用 RRO 變更車輛音訊設定的值。舉例來說,請參閱中的汽車 cuttlefish 參考資料 RRO。device/google/cuttlefish/shared/auto/rro_overlay/audioUseDynamicRouting 中的 device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml 會覆寫 audioUseDynamicRouting 設定。

<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。在 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