Cờ AAOS cấu hình âm thanh

Android Automotive OS (AAOS) sử dụng các cờ và cấu hình để bật nhiều tính năng, bắt đầu từ tính năng định tuyến linh động cho đến các cờ tính năng chung hơn, chẳng hạn như tính năng điều khiển âm lượng từ dịch vụ ô tô. Các cờ cấu hình AAOS hiện tại để quản lý âm thanh được mô tả tại đây.

Gắn cờ Mục đích
audioUseDynamicRouting Được xác định trong tệp cấu hình dịch vụ ô tô để Bật tính năng định tuyến AAOS. Bạn phải đặt cấu hình thành true. Khi false, hoạt động định tuyến và phần lớn CarAudioService bị tắt và hệ điều hành quay trở lại hành vi mặc định được mô tả trong phần Định cấu hình chính sách âm thanh.
useCoreAudioRouting Được xác định trong tệp cấu hình dịch vụ ô tô để bật tính năng quản lý định tuyến âm thanh cốt lõi của AAOS. Khi giá trị được đặt thành true, dịch vụ âm thanh trên ô tô sẽ sử dụng các định nghĩa cấu hình được thiết lập bằng công cụ chính sách âm thanh có thể định cấu hình. Nếu giá trị được đặt thành false, thì tính năng quản lý định tuyến sẽ quay lại sử dụng định nghĩa kết hợp chính sách âm thanh linh động của dịch vụ âm thanh trên ô tô như được định cấu hình bằng audioUseDynamicRouting.
useCoreAudioVolume Được xác định trong tệp cấu hình dịch vụ trên ô tô để bật tính năng quản lý âm lượng âm thanh cốt lõi của AAOS. Khi giá trị được đặt thành true, dịch vụ âm thanh trên ô tô sẽ sử dụng các định nghĩa về nhóm âm lượng được thiết lập bằng công cụ chính sách âm thanh có thể định cấu hình. Nếu giá trị được đặt thành false, thì hoạt động quản lý âm lượng sẽ quay lại sử dụng định nghĩa nhóm âm lượng mặc định của dịch vụ âm thanh trên ô tô như được định cấu hình bằng audioUseDynamicRouting.
audioUseCarVolumeGroupMuting Được xác định trong tệp cấu hình dịch vụ trên ô tô để cho phép tắt tiếng từng nhóm âm lượng. Khi được đặt thành false (giá trị mặc định), tính năng tắt tiếng của từng nhóm âm lượng sẽ bị vô hiệu hoá. Thay vào đó, thao tác tắt tiếng sẽ chuyển đổi chế độ tắt tiếng tổng thể. Khi được đặt thành true, chế độ tắt tiếng nhóm âm lượng trên ô tô sẽ được bật và bạn có thể tắt tiếng từng nhóm âm lượng riêng biệt. Khi true, bạn phải triển khai tính năng tắt tiếng nhóm âm lượng tại Audio Control HAL.
audioUseHalDuckingSignals Được xác định trong tệp cấu hình dịch vụ trên ô tô để bật API IAudioControl#onDevicesToDuckChange nhằm thông báo cho HAL biết thời điểm giảm âm lượng. Khi true (giá trị mặc định), API sẽ nhận được các tín hiệu cho biết thiết bị đầu ra nào cần giảm âm lượng và những mục đích sử dụng nào cần giữ tiêu điểm. Khi false, API không được gọi. API này sẽ không được gọi trừ phi Audio Control HAL triển khai tính năng giảm âm lượng.
config_oemCarService Được xác định trong tệp cấu hình dịch vụ trên ô tô, đây là tên thành phần của dịch vụ tuỳ chỉnh của OEM. Các OEM có thể chọn triển khai dịch vụ này để tuỳ chỉnh các thao tác dịch vụ ô tô cho nhiều chính sách. Nếu chọn triển khai thành phần này, OEM phải triển khai một dịch vụ để mở rộng OemCarService do car-lib cung cấp, sau đó triển khai các dịch vụ thành phần bắt buộc. Cụ thể đối với dịch vụ âm thanh trên ô tô, các OEM có thể triển khai bất kỳ dịch vụ phụ nào về âm thanh để quản lý thao tác âm thanh. Để biết thông tin chi tiết, hãy xem Car Audio Plugin Service (Dịch vụ trình bổ trợ âm thanh trên ô tô). Nếu tên thành phần không hợp lệ, CarService sẽ không kết nối với bất kỳ dịch vụ OEM nào. Tên thành phần không được là gói của bên thứ ba. Bạn phải cài đặt trước.
audioVolumeAdjustmentContextsVersion

Được xác định trong tệp cấu hình dịch vụ ô tô, cấu hình để chọn phiên bản danh sách mức độ ưu tiên theo bối cảnh điều chỉnh âm lượng.

Phiên bản 1 bao gồm tất cả các ngữ cảnh âm thanh, theo thứ tự sau:

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

Phiên bản 2 chỉ giới hạn trong các bối cảnh sau, theo thứ tự này.

Phiên bản mặc định là 1.

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState Được xác định trong tệp cấu hình dịch vụ ô tô, cấu hình để duy trì trạng thái tắt tiếng chung. Khi true (giá trị mặc định), Android sẽ khôi phục trạng thái tắt tiếng chung khi khởi động. Khi audioUseCarVolumeGroupMutingtrue, điều này không ảnh hưởng đến việc duy trì các thay đổi về chế độ tắt tiếng vì các thay đổi về chế độ tắt tiếng dựa trên từng nhóm âm lượng. Giá trị mặc định được đặt thành true và phải được ghi đè khi không duy trì chế độ tắt tiếng chính cho một thiết bị.
audioVolumeKeyEventTimeoutMs

Được xác định trong tệp cấu hình dịch vụ ô tô, cấu hình cho biết thời gian chờ tính bằng mili giây trong khi một nhóm âm lượng ô tô được coi là đang hoạt động để thay đổi chế độ điều khiển âm lượng trong các sự kiện liên quan đến phím âm lượng. Cấu hình này được dùng như sau:

  • Thời gian chờ được dùng để xác định xem một hoạt động phát (âm lượng âm thanh liên kết với mức sử dụng âm thanh của hoạt động phát) có thể vẫn được xem xét để tự động chọn âm lượng sau khi hoạt động phát đó dừng phát hay không.
  • Thời gian chờ cũng được dùng làm khoảng thời gian tạm dừng cần thiết giữa các lần điều chỉnh âm lượng tự động để thay đổi nội dung mà người dùng đang điều chỉnh.

Giá trị mặc định là 3000 mili giây và các OEM nên điều chỉnh giá trị này để điều chỉnh trải nghiệm người dùng.

audioUseCarVolumeGroupEvent Được xác định trong tệp cấu hình dịch vụ ô tô, cấu hình cho phép các sự kiện gọi lại cho các nhóm âm lượng. Khi true, các ứng dụng sẽ nhận được lệnh gọi lại thông qua ICarVolumeGroupEvent cho các sự kiện ảnh hưởng đến nhóm âm lượng. Khi được bật:
  • Các nhà cung cấp cũng nên hỗ trợ IAudioControl#setModuleChangeCallbackIAudioControl#registerGainCallback cho các sự kiện và thay đổi đối với phần cứng âm thanh.
  • Khi cả CarVolumeCallbackCarVolumeGroupEventCallback đều được đăng ký bởi cùng một ứng dụng, lệnh gọi lại chỉ mục nhóm âm lượng và lệnh gọi lại tắt tiếng nhóm âm lượng sẽ chỉ thông qua CarVolumeGroupEventCallback . Do đó, bạn nên di chuyển tất cả ứng dụng sang giao diện gọi lại mới để đảm bảo hiệu suất nhất quán.
  • Giá trị mặc định là false. Bạn nên đặt giá trị này thành true vì các API để hỗ trợ lệnh gọi lại âm lượng cũ không còn được dùng nữa và sẽ sớm bị xoá hoàn toàn.

config_useFixedVolume Được xác định trong frameworks/base/core/res/res/values/config.xml. Phải được đặt thành true để cho phép dịch vụ âm thanh trên ô tô quản lý chế độ điều chỉnh âm lượng. Khi cờ config_useFixedVolume không được đặt hoặc được đặt thành false (giá trị mặc định), các ứng dụng có thể gọi API quản lý âm lượng AudioManager và thay đổi âm lượng theo loại luồng trong bộ trộn phần mềm. Điều này có thể không mong muốn do ảnh hưởng tiềm ẩn đến các ứng dụng khác và thực tế là việc giảm âm lượng trong bộ trộn phần mềm có thể dẫn đến việc có ít bit đáng kể hơn trong tín hiệu khi nhận được tại bộ khuếch đại phần cứng. Các thiết bị mới chưa được định cấu hình và được đặt thành true sẽ nhận các thay đổi về âm lượng thông qua API âm lượng và tắt tiếng AudioManager.
config_handleVolumeKeysInWindowManager Được xác định trong frameworks/base/core/res/res/values/config.xml, phải được đặt thành true để cho phép dịch vụ âm thanh trên ô tô chặn các sự kiện khoá âm lượng. Nếu được đặt thành false (giá trị mặc định), các sự kiện khoá âm lượng có thể được chuyển tiếp đến ứng dụng trên nền trước và có thể dẫn đến kết quả bất lợi từ việc quản lý sự kiện khoá âm lượng bên ngoài dịch vụ âm thanh trên ô tô.
audioUseMinMaxActivationVolume Được xác định trong tệp cấu hình dịch vụ ô tô để bật âm lượng kích hoạt tối thiểu và tối đa. Khi true, chỉ mục tăng âm lượng có thể được điều chỉnh do chế độ quản lý âm lượng kích hoạt tối thiểu và tối đa. Khi false (giá trị mặc định), âm lượng kích hoạt tối thiểu và tối đa sẽ không có hiệu lực.
audioUseFadeManagerConfiguration Được xác định trong tệp cấu hình dịch vụ trên ô tô để bật hành vi mất tiêu điểm âm thanh do hệ thống thực thi. Khi true, khung âm thanh trên ô tô sẽ phân tích các định nghĩa về cấu hình làm mờ âm thanh trên ô tô và áp dụng FadeManagerConfiguration tương ứng khi gửi đi thông báo mất quyền phát âm thanh. Khi false (giá trị mặc định), hệ thống sẽ không thực thi hành vi mờ dần khi một ứng dụng mất quyền phát âm thanh.

Cấu hình dịch vụ âm thanh trên ô tô

Trước Android 13, các cấu hình dịch vụ ô tô đã bị ghi đè bằng lớp phủ cấu hình sản phẩm (để tìm hiểu thêm, hãy xem phần Tuỳ chỉnh bản dựng bằng lớp phủ tài nguyên) cho tệp packages/services/Car/service/res/values/config.xml.

PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>

Vị trí của tệp cấu hình từ <path_to_overlay> đến vị trí thực tế phải bao gồm packages/services/Car/service/res/values/.

RRO của dịch vụ ô tô

Kể từ Android 13, AAOS hỗ trợ Lớp phủ tài nguyên thời gian chạy. Dùng RRO để thay đổi giá trị của cấu hình âm thanh trên ô tô. Ví dụ: hãy xem RRO cho tài liệu tham khảo cuttlefish về ô tô trong device/google/cuttlefish/shared/auto/rro_overlay/. Cấu hình audioUseDynamicRouting bị ghi đè trong device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml.

<resources>
    <bool name="audioUseDynamicRouting">true</bool>
...

Bản đồ lớp phủ tài nguyên nằm trong device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/xml/overlays.xml:

<overlay>
...
  <item target="bool/audioUseDynamicRouting"
value="@bool/audioUseDynamicRouting" />
...
</overlay>

Tệp kê khai lớp phủ tài nguyên được xác định trong device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml chứa targetPackage được đặt làm com.android.car.updatable.

Hãy xem các tài nguyên này để biết thêm thông tin:

API có tính năng

Phương thức này trả về true nếu tính năng này được bật trên thiết bị, nếu không thì trả về false. Trong API CarAudioManager#isAudioFeatureEnabled, tham số được truyền vào phải là một trong những tham số sau:

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING