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

Android Automotive OS (AAOS) sử dụng cờ và cấu hình để bật nhiều tính năng, bắt đầu từ việc định tuyến động đến các cờ tính năng chung hơn, chẳng hạn như đ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, định tuyến và phần lớn CarAudioService bị tắt và hệ điều hành sẽ quay 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.
audioUseCarVolumeGroupMuting Được xác định trong tệp cấu hình dịch vụ ô tô để bật tính năng 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 từng nhóm âm lượng sẽ bị tắt. Thay vào đó, nút tắt tiếng sẽ bật/tắt chế độ tắt tiếng chính. Khi được đặt thành true, tính năng 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 lẻ. 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ụ ô tô để cho phép API IAudioControl#onDevicesToDuckChange thông báo cho HAL thời điểm cần ẩn. 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 ẩn và những trường hợp sử dụng nào giữ tiêu điểm. Khi false, API sẽ 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ụ ô tô, đây là tên thành phần cho dịch vụ tuỳ chỉnh của nhà sản xuất thiết bị gốc (OEM). Nhà sản xuất thiết bị gốc (OEM) có thể chọn triển khai dịch vụ này để tuỳ chỉnh các thao tác bảo dưỡng ô tô cho nhiều chính sách. Nếu OEM chọn triển khai thành phần này, họ phải triển khai một dịch vụ để mở rộng OemCarService do car-lib hiển thị, sau đó triển khai các dịch vụ thành phần bắt buộc. Riêng đối với dịch vụ âm thanh trên ô tô, OEM có thể triển khai bất kỳ dịch vụ phụ âm thanh nào để quản lý thao tác âm thanh. Để biết thông tin chi tiết, hãy xem phần 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 ứng dụng này.
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 ngữ cảnh điều chỉnh âm lượng.

Phiên bản 1 bao gồm tất 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 ở các ngữ 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 toàn cục khi khởi động. Khi audioUseCarVolumeGroupMutingtrue, điều này không ảnh hưởng đến các thay đổi liên tục 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 nên 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 nhóm âm lượng ô tô được coi là đang hoạt động đối với các thay đổi về chế độ điều khiển âm lượng trong các sự kiện phím âm lượng. Cấu hình này được sử dụng như sau:

  • Thời gian chờ được dùng để xác định xem một nội dung phát (âm lượng âm thanh liên kết với mức sử dụng âm thanh của nội dung phát) có thể được xem xét để tự động chọn âm lượng sau khi nội dung đó ngừng phát hay không.
  • Hết thời gian chờ cũng được dùng làm thời lượng 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 mức âm lượng mà người dùng đang điều chỉnh.

Giá trị mặc định là 3000 mili giây và nhà sản xuất thiết bị gốc (OEM) phải đ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 để bật sự kiện gọi lại cho các nhóm âm lượng. Khi true, ứ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ằng cùng một ứng dụng, thì 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ỉ đi qua CarVolumeGroupEventCallback . Do đó, tất cả ứng dụng đều nên di chuyển 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 khiển âm lượng. Khi bạn không đặt cờ config_useFixedVolume hoặ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 tác động tiềm ẩn đối với các ứng dụng khác và 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 có ý nghĩa 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á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 phím âm lượng. Nếu được đặt thành false (giá trị mặc định), các sự kiện nhấn phím â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 các kết quả bất lợi từ việc quản lý sự kiện nhấn phím âm lượng bên ngoài dịch vụ âm thanh trên ô tô.

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

Trước Android 13, cấu hình dịch vụ ô tô được 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 dịch vụ xe hơi

Kể từ Android 13, AAOS hỗ trợ Lớp phủ tài nguyên thời gian chạy. Sử dụng RRO để thay đổi giá trị của cấu hình âm thanh trên ô tô. Ví dụ: hãy xem các RRO cho tham chiếu cuttlefish trong ngành ô 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 thành com.android.car.updatable.

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

API hỗ trợ tính năng

Phương thức này trả về true nếu tính năng đượ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