Flag AAOS การกำหนดค่าเสียง

ระบบปฏิบัติการ Android Automotive (AAOS) ใช้ Flag และการกำหนดค่าเพื่อเปิดใช้ฟีเจอร์ต่างๆ โดยเริ่มจากการกำหนดเส้นทางแบบไดนามิกไปจนถึง Flag ฟีเจอร์ทั่วไปมากขึ้น เช่น การควบคุมระดับเสียงจากบริการของรถยนต์ ดูคำอธิบายเกี่ยวกับ Flag การกำหนดค่า AAOS ปัจจุบันสำหรับการจัดการเสียงได้ที่นี่

ตั้งค่าสถานะ วัตถุประสงค์
audioUseDynamicRouting กำหนดไว้ในไฟล์การกําหนดค่าบริการรถยนต์เพื่อเปิดใช้การกำหนดเส้นทาง AAOS ต้องตั้งค่าการกําหนดค่าเป็น true เมื่อ false ระบบจะปิดใช้การกำหนดเส้นทางและ CarAudioService ส่วนใหญ่ และระบบปฏิบัติการจะกลับไปใช้ลักษณะการทำงานเริ่มต้นตามที่อธิบายไว้ในการกำหนดค่านโยบายเสียง
audioUseCarVolumeGroupMuting กำหนดไว้ในไฟล์การกําหนดค่าบริการรถยนต์เพื่อเปิดใช้การปิดเสียงของกลุ่มระดับเสียงแต่ละกลุ่ม เมื่อตั้งค่าเป็น false (ค่าเริ่มต้น) ระบบจะปิดใช้การปิดเสียงของกลุ่มระดับเสียงแต่ละกลุ่ม แต่จะเป็นการสลับการปิดเสียงหลักแทน เมื่อตั้งค่าเป็น true ระบบจะเปิดใช้การปิดเสียงกลุ่มระดับเสียงของรถ และปิดเสียงแต่ละกลุ่มแยกกันได้ เมื่อ true ต้องใช้การปิดเสียงกลุ่มระดับเสียงที่ 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 เพื่ออนุญาตให้บริการเสียงของรถยนต์จัดการการควบคุมระดับเสียง เมื่อไม่ได้ตั้งค่า Flag config_useFixedVolume หรือตั้งค่าเป็น false (ค่าเริ่มต้น) แอปจะเรียกใช้ AudioManager Volume Management API และเปลี่ยนระดับเสียงตามประเภทสตรีมในโปรแกรมผสมเสียงซอฟต์แวร์ได้ ซึ่งอาจไม่เหมาะสมเนื่องจากอาจส่งผลต่อแอปอื่นๆ และข้อเท็จจริงที่ว่าการตัดระดับเสียงในมิกเซอร์ซอฟต์แวร์อาจส่งผลให้สัญญาณมีบิตที่มีนัยสำคัญน้อยลงเมื่อรับสัญญาณที่เครื่องขยายเสียงฮาร์ดแวร์ อุปกรณ์ใหม่ที่ไม่ได้กําหนดค่าไว้และตั้งค่าให้ true รับการเปลี่ยนแปลงระดับเสียงผ่าน API ระดับเสียงและปิดเสียง AudioManager
config_handleVolumeKeysInWindowManager กำหนดไว้ใน frameworks/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 เพื่อเปลี่ยนค่าของการกำหนดค่าเสียงรถยนต์ เช่น ดู 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 ใน 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