音訊設定 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 API 在何時通知 HAL 時,當 true (預設值) 時,API 會接收信號,指出要隱藏哪些輸出裝置,以及哪些用途會保留焦點。當 false 時,系統不會呼叫 API。除非 Audio Control HAL 實作了 ducking,否則不會呼叫 API。
config_oemCarService 這是在車輛服務設定檔中定義的元件名稱,為原始設備製造商 (OEM) 自訂服務的元件名稱。原始設備製造商 (OEM) 可以選擇實作這項服務,為不同的政策自訂汽車服務動作。如果原始設備製造商 (OEM) 選擇實作此元件,則必須實作服務,以延伸 car-lib 公開的 OemCarService,然後實作必要的元件服務。就車用音訊服務而言,原始設備製造商 (OEM) 可以實作任何音訊子服務來管理音訊動作。詳情請參閱「Car Audio Plugin Service」。如果元件名稱無效,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 (預設值) 為 1 時,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,並根據軟體混合器中的串流類型變更音量。這可能會造成不良影響,因為這會影響其他應用程式,而且軟體混合器的音量衰減功能會導致在硬體放大器接收時,信號中可用的有效位元數減少。未經設定且設為 true 的新裝置,會透過 AudioManager 音量和靜音 API 接收音量變更。
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 變更車輛音訊設定的值。例如,請參閱 device/google/cuttlefish/shared/auto/rro_overlay/ 中汽車 cuttlefish 參考資料的 RRO。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。在 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