ภาพรวม

Android Automotive OS (AAOS) สร้างขึ้นบนสแต็กเสียงหลักของ Android เพื่อรองรับ Use Case สำหรับการทำงานเป็นระบบสาระบันเทิงในรถยนต์ AAOS มีหน้าที่จัดการเสียงของระบบสาระบันเทิง (เช่น สื่อ การนำทาง และ การสื่อสาร) แต่ไม่ได้มีหน้าที่จัดการเสียงกริ่งและคำเตือนโดยตรงซึ่งมี ข้อกำหนดด้านความพร้อมใช้งานและเวลาที่เข้มงวด

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

เนื่องจาก AAOS ใช้ประโยชน์จากสแต็กเสียงของ Android แอปพลิเคชันของบุคคลที่สามที่เล่นเสียงจึงไม่จำเป็นต้องทำอะไรที่แตกต่างจากในโทรศัพท์ AAOS จะจัดการการกำหนดเส้นทางเสียงของ แอปพลิเคชันโดยอัตโนมัติตามที่อธิบายไว้ใน การกำหนดค่านโยบายเสียง

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

เสียงและสตรีมของ Android

ระบบเสียงในรถยนต์จะจัดการเสียงและสตรีมต่อไปนี้

ภาพ

รูปที่ 1 แผนภาพสถาปัตยกรรมที่เน้นสตรีม

Android จะจัดการเสียงที่มาจากแอป Android โดยควบคุมแอปเหล่านั้นและ กำหนดเส้นทางเสียงไปยังอุปกรณ์เอาต์พุตที่ HAL ตามประเภทของเสียง

  • สตรีมเชิงตรรกะซึ่งรู้จักกันในชื่อแหล่งที่มาในระบบการตั้งชื่อเสียงหลักจะได้รับการติดแท็ก ด้วยแอตทริบิวต์เสียง

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

เสียงภายนอก (มาจากแหล่งที่มาอิสระ เช่น เสียงเตือนคาดเข็มขัดนิรภัย) จะได้รับการจัดการภายนอก Android, ใต้ HAL หรือแม้แต่ในฮาร์ดแวร์แยกต่างหากเพื่อความน่าเชื่อถือ ผู้ติดตั้งระบบต้องจัดเตรียมมิกเซอร์ที่รับสตรีมอินพุตเสียงอย่างน้อย 1 รายการจาก Android แล้วรวมสตรีมเหล่านั้นด้วยวิธีที่เหมาะสมกับแหล่งเสียงภายนอกที่ยานพาหนะต้องการ Android Control HAL มี กลไกที่แตกต่างกันสำหรับเสียงที่สร้างขึ้นภายนอก Android เพื่อสื่อสารกลับไปยัง Android

  • คำขอโฟกัสเสียง
  • ข้อจำกัดด้านเกนหรือระดับเสียง
  • การเปลี่ยนแปลงอัตราขยายและระดับเสียง

การติดตั้งใช้งาน HAL เสียงและมิกเซอร์ภายนอกมีหน้าที่รับผิดชอบในการตรวจสอบว่าได้ยินเสียงภายนอกที่สำคัญต่อความปลอดภัย และในการมิกซ์สตรีมที่ Android จัดหาให้และกำหนดเส้นทางไปยังลำโพงที่เหมาะสม

เสียงของ Android

แอปอาจมีเพลเยอร์อย่างน้อย 1 ตัวที่โต้ตอบผ่าน Android API มาตรฐาน (เช่น AudioManager สำหรับการควบคุมโฟกัสหรือ MediaPlayer สำหรับการสตรีม) เพื่อปล่อยสตรีมข้อมูลเสียงเชิงตรรกะอย่างน้อย 1 รายการ ข้อมูลนี้ อาจเป็นโมโนแบบช่องเดียวหรือเซอร์ราวด์ 7.1 แต่จะได้รับการกำหนดเส้นทางและถือเป็น แหล่งที่มาเดียว สตรีมแอปเชื่อมโยงกับ AudioAttributes ซึ่งให้คำแนะนำแก่ระบบเกี่ยวกับวิธีแสดงเสียง

ระบบจะส่งสตรีมเชิงตรรกะผ่าน AudioService และกำหนดเส้นทางไปยังสตรีมเอาต์พุตจริงที่มีอยู่ 1 รายการ (และมีเพียง 1 รายการเท่านั้น) ซึ่งแต่ละรายการเป็นเอาต์พุตของมิกเซอร์ภายใน AudioFlinger หลังจากมิกซ์ดาวน์แอตทริบิวต์เสียงลงใน สตรีมจริงแล้ว แอตทริบิวต์เหล่านั้นจะใช้ไม่ได้อีกต่อไป

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

สตรีมภายนอก

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

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

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

อุปกรณ์เอาต์พุต

ที่ระดับ Audio HAL ประเภทอุปกรณ์ AUDIO_DEVICE_OUT_BUS จะ มีอุปกรณ์เอาต์พุตทั่วไปสำหรับใช้ในระบบเสียงของยานพาหนะ อุปกรณ์บัสรองรับ พอร์ตที่ระบุได้ (ซึ่งแต่ละพอร์ตเป็นจุดสิ้นสุดของสตรีมจริง) และ คาดว่าจะเป็นอุปกรณ์เอาต์พุตประเภทเดียวที่รองรับในยานพาหนะ

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

การกำหนดบริบทเสียงให้กับอุปกรณ์เอาต์พุตจะทำผ่านไฟล์ car_audio_configuration.xml ดูข้อมูลเพิ่มเติมได้ที่การกำหนดค่านโยบายเสียง