ภาพรวม

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

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

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

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

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

ระบบเครื่องเสียงรถยนต์รองรับเสียงและสตรีมต่อไปนี้:

image

รูปที่ 1 แผนภาพสถาปัตยกรรมแบบสตรีมเป็นศูนย์กลาง

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

  • สตรีมแบบลอจิคัล หรือที่เรียกว่าแหล่งที่มาในระบบการตั้งชื่อเสียงหลัก จะถูกแท็กด้วย คุณลักษณะเสียง

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

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

  • ขอโฟกัสเสียง
  • ขีดจำกัดกำไรหรือปริมาณ
  • เกนและการเปลี่ยนแปลงระดับเสียง

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

เสียง Android

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

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

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

กระแสภายนอก

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

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

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

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

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

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

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