音訊配置 AAOS 標誌,音訊配置 AAOS 標誌

Android 汽車作業系統 (AAOS) 使用標誌和配置來啟用不同的功能,從動態路由到更通用的功能標誌,例如汽車服務的音量控制。此處描述了目前音訊管理的 AAOS 配置標誌。

旗幟目的
audioUseDynamicRouting在汽車服務設定檔中定義以啟用 AAOS 路由。此配置必須設為true 。當為false時,路由和CarAudioService大部分功能將被停用,並且作業系統將恢復為配置音訊策略中所述的預設行為。
audioUseCarVolumeGroupMuting在汽車服務設定檔中定義,以啟用各個磁碟區組的靜音。當設定為false (預設值)時,將停用各個卷組的靜音。相反,靜音會切換主靜音。設定為true時,將啟用汽車音量組靜音,並且每個單獨的音量組都可以單獨靜音。如果為true ,則必須在音訊控制 HAL上實現卷組靜音。
audioUseHalDuckingSignals在汽車服務設定檔中定義,以啟用IAudioControl#onDevicesToDuckChange API 來通知 HAL 何時躲避。當為true (預設值)時,API 會接收指示要迴避哪些輸出裝置以及哪些用途保持焦點的訊號。當false時,不會呼叫 API。除非音訊控制 HAL實作閃避,否則不會呼叫 API。
config_oemCarService在汽車服務設定檔中定義,這是 OEM 客製化服務的元件名稱。整車廠可以選擇實施此服務,以針對不同政策客製化汽車服務作業。如果 OEM 選擇實作此元件,則必須實作一個服務來擴展 car-lib 公開的OemCarService ,然後實作所需的元件服務。特別是對於汽車音訊服務,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 (預設值)時,Android 將在啟動時恢復全域靜音狀態。當audioUseCarVolumeGroupMutingtrue時,這對持久靜音變更沒有影響,因為靜音變更基於各個磁碟區組。預設值設為true ,並且當不應為裝置保留主靜音時必須覆寫該值。
audioVolumeKeyEventTimeoutMs

在汽車服務設定檔中定義的配置,用於指示在音量鍵事件期間汽車磁碟區組被視為針對音量控制變更處於活動狀態時的逾時(以毫秒為單位)。使用配置如下:

  • 逾時用於確定播放(與播放的音訊使用相關的音訊音量)在停止播放後是否仍可考慮進行自動音量選擇。
  • 逾時也用作自動音量調整之間所需的暫停持續時間,以變更使用者正在調整的內容。

預設值是3000毫秒,原始設備製造商 (OEM) 應進行調整以適應使用者體驗。

audioUseCarVolumeGroupEvent在汽車服務設定檔中定義,用於啟用磁碟區組回呼事件的配置。當true時,用戶端透過ICarVolumeGroupEvent接收影響卷組的事件的回呼。啟用後:

  • 我們強烈建議供應商也支援IAudioControl#setModuleChangeCallbackIAudioControl#registerGainCallback來處理音訊硬體的事件和變更。
  • 當同一個應用程式同時註冊CarVolumeCallbackCarVolumeGroupEventCallback時,卷組索引和卷組靜音回調透過CarVolumeGroupEventCallback進行。因此,我們強烈建議所有應用程式遷移到新的回調接口,以確保一致的效能。
  • 預設值為false 。我們建議您將其設為true ,因為支援舊卷回呼的 API 已棄用,並將很快被完全刪除。

config_useFixedVolumeframeworks/base/core/res/res/values/config.xml中定義。必須設定為true才能允許汽車音訊服務管理音量控制。當config_useFixedVolume標誌未設定或設定為false (預設值)時,應用程式可以呼叫AudioManager音量管理 API 並依軟體混音器中的串流類型變更音量。這可能是不可取的,因為對其他應用程式有潛在影響,而且軟體混音器中的音量衰減可能會導致硬體放大器接收到的訊號中可用的有效位元減少。尚未配置且設定為true新裝置透過AudioManager音量和靜音 API 接收音量變更。
config_handleVolumeKeysInWindowManagerframeworks/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 支援運行時資源疊加。使用 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中定義的資源覆蓋清單包含設定為com.android.car.updatable targetPackage

請參閱這些資源以獲取更多資訊:

支援功能的 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