Flag 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 ระบบจะไม่เรียกใช้ API เว้นแต่ว่า Audio Control HAL จะใช้การลดระดับเสียง
config_oemCarService กำหนดไว้ในไฟล์การกำหนดค่าบริการรถยนต์ ซึ่งเป็นชื่อคอมโพเนนต์สำหรับ บริการการปรับแต่ง OEM OEM สามารถเลือกใช้บริการนี้เพื่อ ปรับแต่งการดำเนินการของบริการรถยนต์สำหรับนโยบายต่างๆ หาก OEM เลือกใช้คอมโพเนนต์นี้ จะต้องใช้บริการเพื่อขยาย OemCarService ที่ car-lib เปิดเผย และใช้บริการคอมโพเนนต์ที่จำเป็น สำหรับบริการเสียงของรถยนต์โดยเฉพาะ 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 จะคืนค่าสถานะการปิดเสียงทั่วโลกเมื่อบูต เมื่อ audioUseCarVolumeGroupMuting เป็น true การตั้งค่านี้จะไม่ส่งผลต่อการเก็บการเปลี่ยนแปลงการปิดเสียง เนื่องจากระบบจะพิจารณาการเปลี่ยนแปลงการปิดเสียงตามกลุ่มระดับเสียงแต่ละกลุ่ม ค่าเริ่มต้นตั้งค่าเป็น true และต้องเขียนทับเมื่อไม่ควรเก็บการปิดเสียงหลักไว้สำหรับอุปกรณ์
audioVolumeKeyEventTimeoutMs

กำหนดไว้ในไฟล์การกำหนดค่าบริการรถยนต์ ซึ่งเป็นการกำหนดค่าเพื่อระบุการ หมดเวลาเป็นมิลลิวินาทีขณะที่ระบบพิจารณาว่ากลุ่มระดับเสียงของรถยนต์ยังคงทำงานอยู่สำหรับการ เปลี่ยนแปลงการควบคุมระดับเสียงระหว่างเหตุการณ์ปุ่มปรับระดับเสียง การกำหนดค่านี้ใช้ ดังนี้

  • ระบบใช้การหมดเวลาเพื่อพิจารณาว่าการเล่น (ระดับเสียงที่เชื่อมโยงกับการใช้งานเสียงของการเล่น) ยังคงถือว่าใช้ได้สำหรับการเลือกระดับเสียงอัตโนมัติหลังจากหยุดเล่นแล้วหรือไม่
  • นอกจากนี้ ระบบยังใช้การหมดเวลาเป็นระยะเวลาหยุดชั่วคราวที่จำเป็นระหว่างการปรับระดับเสียงอัตโนมัติ เพื่อเปลี่ยนสิ่งที่ผู้ใช้กำลังปรับ

ค่าเริ่มต้นคือ 3000 มิลลิวินาที และ OEM ควรปรับค่านี้เพื่อปรับแต่งประสบการณ์ของผู้ใช้

audioUseCarVolumeGroupEvent กำหนดไว้ในไฟล์การกำหนดค่าบริการรถยนต์ ซึ่งเป็นการกำหนดค่าเพื่อเปิดใช้เหตุการณ์การเรียกกลับ ไปยังกลุ่มระดับเสียง เมื่อ true ไคลเอ็นต์จะได้รับการเรียกกลับ ผ่าน ICarVolumeGroupEvent ไปยังเหตุการณ์ที่ส่งผลต่อกลุ่มระดับเสียง เมื่อเปิดใช้
  • เราขอแนะนำอย่างยิ่งให้ผู้ให้บริการรองรับ IAudioControl#setModuleChangeCallback และ IAudioControl#registerGainCallback สำหรับเหตุการณ์และการเปลี่ยนแปลง ฮาร์ดแวร์เสียงด้วย
  • เมื่อแอปเดียวกันลงทะเบียนทั้ง CarVolumeCallback และ CarVolumeGroupEventCallback การเรียกกลับดัชนีกลุ่มระดับเสียงและการเรียกกลับการปิดเสียงกลุ่มระดับเสียงจะผ่าน CarVolumeGroupEventCallback เท่านั้น ดังนั้น เราขอแนะนำอย่างยิ่งให้แอปทั้งหมดย้ายข้อมูลไปยังอินเทอร์เฟซการเรียกกลับใหม่ เพื่อให้มั่นใจถึงประสิทธิภาพที่สอดคล้องกัน
  • ค่าเริ่มต้นคือ false เราขอแนะนำให้ตั้งค่านี้เป็น true เนื่องจาก API สำหรับรองรับการเรียกกลับระดับเสียงเดิม ถูกเลิกใช้งานแล้วและจะถูกนำออกทั้งหมดในเร็วๆ นี้

config_useFixedVolume กำหนดไว้ใน frameworks/base/core/res/res/values/config.xml ต้องตั้งค่าเป็น true เพื่ออนุญาตให้บริการเสียงของรถยนต์จัดการ การควบคุมระดับเสียง เมื่อไม่ได้ตั้งค่าแฟล็ก config_useFixedVolume หรือตั้งค่าเป็น false (ค่าเริ่มต้น) แอปจะเรียกใช้ API การจัดการระดับเสียง AudioManager และเปลี่ยนระดับเสียงตามประเภทสตรีมในมิกเซอร์ซอฟต์แวร์ได้ การดำเนินการนี้อาจไม่เป็นที่ต้องการเนื่องจากอาจส่งผลต่อแอปอื่นๆ และการลดทอนระดับเสียงในมิกเซอร์ซอฟต์แวร์อาจทำให้บิตสำคัญที่พร้อมใช้งานในสัญญาณมีจำนวนน้อยลงเมื่อได้รับที่แอมพลิฟายเออร์ฮาร์ดแวร์ อุปกรณ์ใหม่ที่ยังไม่ได้ กำหนดค่าและตั้งค่าเป็น true จะได้รับการเปลี่ยนแปลงระดับเสียง ผ่าน API ระดับเสียงและการปิดเสียง AudioManager
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 เพื่อเปลี่ยนค่าของการกำหนดค่าเสียงของรถยนต์ ตัวอย่างเช่น ดู RRO สำหรับ การอ้างอิงยานยนต์ cuttlefish ใน device/google/cuttlefish/shared/auto/rro_overlay/ ระบบจะลบล้างการกำหนดค่า 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>

ไฟล์ Manifest การซ้อนทับทรัพยากรที่กำหนดไว้ใน device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml มี targetPackage ที่ตั้งค่าเป็น com.android.car.updatable

ดูข้อมูลเพิ่มเติมได้จากแหล่งข้อมูลต่อไปนี้

API ที่เปิดใช้ฟีเจอร์

เมธอดจะแสดงผล true หากเปิดใช้ฟีเจอร์ในอุปกรณ์ ไม่เช่นนั้นจะแสดงผล false ใน API CarAudioManager#isAudioFeatureEnabled พารามิเตอร์ที่ส่งผ่านต้องเป็นค่าใดค่าหนึ่งต่อไปนี้

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING