سیستمعامل Android Automotive (AAOS) بر روی پشته صوتی Android ساخته شده است تا از موارد استفاده برای عملکرد به عنوان سیستم اطلاعات سرگرمی در خودرو پشتیبانی کند. AAOS مسئول صداهای سرگرمی اطلاعاتی (یعنی رسانه، ناوبری و ارتباطات) است، اما مستقیماً مسئول زنگ ها و هشدارهایی نیست که الزامات دقیق در دسترس بودن و زمان بندی دارند.
در حالی که AAOS سیگنالها و مکانیسمهایی را برای کمک به خودرو در مدیریت صدا ارائه میکند، در پایان این به خودرو بستگی دارد که تماس بگیرد که چه صداهایی باید برای راننده و سرنشینان پخش شود، و اطمینان حاصل میکند که صداهای مهم ایمنی و صداهای نظارتی به درستی شنیده میشوند. وقفه
از آنجایی که AAOS از پشته صوتی اندروید استفاده میکند، برنامههای شخص ثالثی که صدا را پخش میکنند نیازی به انجام کاری متفاوت با گوشیها ندارند. مسیریابی صوتی برنامه به طور خودکار توسط AAOS مدیریت می شود که در پیکربندی خط مشی صوتی توضیح داده شده است.
همانطور که Android تجربه رسانه ای خودرو را مدیریت می کند، منابع رسانه خارجی مانند تیونر رادیویی باید توسط برنامه هایی نشان داده شوند که می توانند فوکوس صوتی و رویدادهای کلید رسانه را برای منبع کنترل کنند.
صداها و استریم های اندروید
سیستمهای صوتی خودرو صداها و جریانهای زیر را کنترل میکنند:
شکل 1. نمودار معماری جریان محور.
Android صداهای دریافتی از برنامههای Android را مدیریت میکند، آن برنامهها را کنترل میکند و صداهای آنها را بر اساس نوع صدا به دستگاههای خروجی در HAL هدایت میکند:
جریانهای منطقی ، که به عنوان منابع در نامگذاری صوتی اصلی شناخته میشوند، با ویژگیهای صوتی برچسبگذاری شدهاند.
جریانهای فیزیکی ، که به عنوان دستگاهها در نامگذاری صوتی اصلی شناخته میشوند، پس از مخلوط کردن، هیچ اطلاعات زمینهای ندارند.
برای اطمینان، صداهای خارجی (از منابع مستقل، مانند زنگ هشدار کمربند ایمنی) خارج از Android، زیر HAL یا حتی در سخت افزار جداگانه مدیریت می شوند. پیادهکنندههای سیستم باید میکسری ارائه کنند که یک یا چند جریان ورودی صدا را از اندروید بپذیرد و سپس آن جریانها را به روشی مناسب با منابع صوتی خارجی مورد نیاز خودرو ترکیب کند. Android Control HAL مکانیزم متفاوتی را برای صداهای تولید شده در خارج از Android برای برقراری ارتباط مجدد با Android فراهم می کند:
- درخواست فوکوس صوتی
- محدودیت افزایش یا حجم
- افزایش و حجم تغییر می کند
اجرای HAL صوتی و میکسر خارجی وظیفه اطمینان از شنیده شدن صداهای خارجی مهم و حیاتی و میکس کردن در استریم های ارائه شده توسط Android و مسیریابی آنها به بلندگوهای مناسب را بر عهده دارند.
صداهای اندروید
برنامهها ممکن است یک یا چند پخش کننده داشته باشند که از طریق APIهای استاندارد Android (مثلاً AudioManager برای کنترل فوکوس یا MediaPlayer برای پخش جریانی) تعامل داشته باشند تا یک یا چند جریان منطقی از دادههای صوتی را منتشر کنند. این دادهها میتوانند تک کانالی تک کانالی یا فراگیر 7.1 باشند، اما بهعنوان یک منبع واحد هدایت میشوند و در نظر گرفته میشوند. جریان برنامه با AudioAttributes مرتبط است که به سیستم نکاتی درباره نحوه بیان صدا می دهد.
جریانهای منطقی از طریق AudioService ارسال میشوند و به یکی (و تنها یکی) از جریانهای خروجی فیزیکی موجود، که هر کدام خروجی یک میکسر در AudioFlinger هستند، هدایت میشوند. پس از اینکه ویژگیهای صوتی در یک جریان فیزیکی ترکیب شدند، دیگر در دسترس نیستند.
سپس هر جریان فیزیکی برای نمایش بر روی سخت افزار به Audio HAL تحویل داده می شود. در برنامههای خودرو، سختافزار رندر میتواند کدکهای محلی (مشابه دستگاههای تلفن همراه) یا یک پردازنده از راه دور در سراسر شبکه فیزیکی خودرو باشد. در هر صورت، این وظیفه اجرای Audio HAL است که دادههای نمونه واقعی را تحویل داده و باعث شنیدن آن شود.
جریان های خارجی
جریانهای صوتی که نباید از طریق Android (به دلایل تأیید یا زمانبندی) هدایت شوند، ممکن است مستقیماً به میکسر خارجی ارسال شوند. از اندروید 11، HAL اکنون میتواند برای اطلاعرسانی به اندروید فوکوس را برای این صداهای خارجی درخواست کند تا بتواند اقدامات مناسبی مانند توقف رسانه یا جلوگیری از تمرکز دیگران را انجام دهد.
اگر جریانهای خارجی منابع رسانهای هستند که باید با محیط صوتی که Android تولید میکند تعامل داشته باشند (به عنوان مثال، پخش MP3 را هنگامی که یک تیونر خارجی روشن است متوقف کنید)، آن جریانهای خارجی باید توسط یک برنامه Android نشان داده شوند. چنین برنامهای به جای HAL، فوکوس صوتی را از طرف منبع رسانه درخواست میکند و به اعلانهای فوکوس با راهاندازی و توقف منبع خارجی در صورت لزوم برای تناسب با خطمشی فوکوس اندروید پاسخ میدهد.
این برنامه همچنین مسئول رسیدگی به رویدادهای کلیدی رسانه مانند پخش و مکث است. یکی از مکانیسم های پیشنهادی برای کنترل چنین دستگاه های خارجی HwAudioSource
است. برای کسب اطلاعات بیشتر، به اتصال دستگاه ورودی در AAOS مراجعه کنید.
دستگاه های خروجی
در سطح صوتی HAL، نوع دستگاه AUDIO_DEVICE_OUT_BUS
یک دستگاه خروجی عمومی را برای استفاده در سیستم های صوتی خودرو ارائه می دهد. دستگاه اتوبوس از پورت های آدرس پذیر (که در آن هر پورت نقطه پایان یک جریان فیزیکی است) پشتیبانی می کند و انتظار می رود تنها نوع دستگاه خروجی پشتیبانی شده در یک وسیله نقلیه باشد.
یک پیاده سازی سیستم می تواند از یک پورت اتوبوس برای همه صداهای اندروید استفاده کند، در این صورت اندروید همه چیز را با هم ترکیب می کند و به صورت یک جریان ارائه می کند. روش دیگر، HAL میتواند یک پورت اتوبوس برای هر CarAudioContext فراهم کند تا امکان ارسال همزمان هر نوع صدایی را فراهم کند. این امکان را برای اجرای HAL فراهم می کند تا صداهای مختلف را به دلخواه میکس و پخش کند.
تخصیص زمینه های صوتی به دستگاه های خروجی از طریق فایل car_audio_configuration.xml
انجام می شود. برای کسب اطلاعات بیشتر، به پیکربندی خط مشی صوتی مراجعه کنید.