Android Automotive OS (AAOS) สร้างขึ้นจากสแต็กเสียงหลักของ Android เพื่อรองรับกรณีการใช้งานสำหรับการทำงานเป็นระบบสาระบันเทิงในยานพาหนะ 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 รายการ (และเพียงรายการเดียว) ซึ่งแต่ละรายการเป็นเอาต์พุตของมิกเซอร์ภายใน AudioFlinger หลังจากมิกซ์แอตทริบิวต์เสียงลงในสตรีมเชิงกายภาพแล้ว แอตทริบิวต์เหล่านั้นจะใช้งานไม่ได้อีกต่อไป
จากนั้นระบบจะส่งสตรีมเชิงกายภาพแต่ละรายการไปยัง HAL เสียงเพื่อแสดงผลบนฮาร์ดแวร์ ในแอปยานยนต์ ฮาร์ดแวร์การแสดงผลอาจเป็นตัวแปลงสัญญาณในเครื่อง (คล้ายกับอุปกรณ์เคลื่อนที่) หรือโปรเซสเซอร์ระยะไกลในเครือข่ายทางกายภาพของยานพาหนะ ไม่ว่าจะด้วยวิธีใดก็ตาม การติดตั้งใช้งาน HAL เสียงมีหน้าที่ส่งข้อมูลตัวอย่างจริงและทำให้ได้ยินเสียง
สตรีมภายนอก
ระบบอาจส่งสตรีมเสียงที่ไม่ควรกำหนดเส้นทางผ่าน Android (ด้วยเหตุผลด้านการรับรองหรือการกำหนดเวลา) ไปยังมิกเซอร์ภายนอกโดยตรง ตั้งแต่ Android 11 เป็นต้นมา HAL สามารถขอโฟกัสสำหรับเสียงภายนอกเหล่านี้เพื่อแจ้งให้ Android ทราบเพื่อให้ Android ดำเนินการที่เหมาะสมได้ เช่น หยุดสื่อชั่วคราวหรือป้องกันไม่ให้ผู้อื่นได้รับโฟกัส
หากสตรีมภายนอกเป็นแหล่งที่มาของสื่อที่ควรโต้ตอบกับสภาพแวดล้อมเสียงที่ Android สร้างขึ้น (เช่น หยุดการเล่น MP3 เมื่อเปิดจูนเนอร์ภายนอก) สตรีมภายนอกเหล่านั้นควรแสดงด้วยแอป Android แอปดังกล่าวจะขอโฟกัสเสียงในนามของแหล่งที่มาของสื่อแทน HAL และจะตอบสนองต่อการแจ้งเตือนโฟกัสโดยการเริ่มและหยุดแหล่งที่มาภายนอกตามความจำเป็นเพื่อให้สอดคล้องกับนโยบายโฟกัสของ Android
แอปยังมีหน้าที่จัดการเหตุการณ์คีย์สื่อ เช่น เล่นและหยุดชั่วคราว HwAudioSource เป็นกลไกหนึ่งที่แนะนำให้ใช้เพื่อควบคุมอุปกรณ์ภายนอกดังกล่าว ดูข้อมูลเพิ่มเติมได้ที่หัวข้อ
เชื่อมต่ออุปกรณ์อินพุตใน AAOS
อุปกรณ์เอาต์พุต
ที่ระดับ HAL เสียง ประเภทอุปกรณ์ AUDIO_DEVICE_OUT_BUS จะมีอุปกรณ์เอาต์พุตทั่วไปสำหรับใช้ในระบบเสียงของยานพาหนะ อุปกรณ์บัสรองรับพอร์ตที่กำหนดแอดเดรสได้ (โดยแต่ละพอร์ตเป็นจุดสิ้นสุดสำหรับสตรีมเชิงกายภาพ) และคาดว่าจะเป็นประเภทอุปกรณ์เอาต์พุตเดียวที่รองรับในยานพาหนะ
การติดตั้งใช้งานระบบสามารถใช้พอร์ตบัส 1 พอร์ตสำหรับเสียงทั้งหมดของ Android ซึ่งในกรณีนี้ Android จะมิกซ์ทุกอย่างเข้าด้วยกันและส่งเป็นสตรีมเดียว หรือ HAL สามารถจัดเตรียมพอร์ตบัส 1 พอร์ตสำหรับ CarAudioContext แต่ละรายการเพื่อให้ส่งเสียงประเภทต่างๆ ได้พร้อมกัน ซึ่งจะช่วยให้การติดตั้งใช้งาน HAL สามารถมิกซ์และลดระดับเสียงต่างๆ ได้ตามต้องการ
การกำหนดบริบทเสียงให้กับอุปกรณ์เอาต์พุตจะทำผ่านไฟล์ car_audio_configuration.xml ดูข้อมูลเพิ่มเติมได้ที่หัวข้อ
การกำหนดค่าเกี่ยวกับนโยบายเสียง