نظرة عامة

يستند نظام التشغيل Android Automotive (AAOS) إلى حزمة الصوت الأساسية في Android لتوفير حالات الاستخدام التي تتيح عمله كنظام للترفيه والمعلومات في السيارة. يكون نظام التشغيل Android Automotive مسؤولاً عن أصوات نظام المعلومات والترفيه (أي الوسائط والملاحة والاتصالات)، ولكنّه ليس مسؤولاً بشكل مباشر عن الأجراس والتحذيرات التي تتطلّب توفّرًا وتوقيتًا دقيقَين.

على الرغم من أنّ AAOS يوفّر إشارات وآليات لمساعدة السيارة في إدارة الصوت، إلا أنّ القرار النهائي بشأن الأصوات التي يجب تشغيلها للسائق والركاب يعود إلى السيارة، ما يضمن سماع الأصوات المهمة المتعلقة بالأمان والأصوات التنظيمية بشكل سليم بدون انقطاع.

بما أنّ AAOS يستفيد من حزمة الصوت في Android، لا تحتاج التطبيقات التابعة لجهات خارجية التي تشغّل الصوت إلى اتّخاذ أي إجراءات مختلفة عن تلك التي تتّخذها في الهواتف. تتولّى AAOS تلقائيًا إدارة توجيه الصوت في التطبيق، كما هو موضّح في إعدادات سياسة الصوت.

بما أنّ نظام التشغيل Android يدير تجربة الوسائط في السيارة، يجب أن يتم تمثيل مصادر الوسائط الخارجية، مثل جهاز استقبال الراديو، من خلال تطبيقات يمكنها التعامل مع أحداث مفتاح الوسائط وأولويّة الصوت للمصدر.

الأصوات ومصادر البيانات على Android

تتعامل أنظمة الصوت في السيارات مع الأصوات وعمليات البث التالية:

صورة

الشكل 1: مخطّط بياني للبنية المستندة إلى البث

يدير نظام التشغيل Android الأصوات الصادرة من تطبيقات Android، ويتحكّم في هذه التطبيقات ويوجه أصواتها إلى أجهزة الإخراج في طبقة تجريد الأجهزة (HAL) استنادًا إلى نوع الصوت:

  • يتم وضع علامات سمات الصوت على قنوات البث المنطقية، المعروفة باسم المصادر في مصطلحات الصوت الأساسية.

  • لا تتضمّن مصادر الصوت المادية، المعروفة باسم الأجهزة في مصطلحات الصوت الأساسية، أي معلومات سياقية بعد المزج.

لضمان الموثوقية، تتم إدارة الأصوات الخارجية (التي تأتي من مصادر مستقلة، مثل أصوات تنبيه حزام الأمان) خارج نظام التشغيل Android، أسفل طبقة تجريد الأجهزة (HAL) أو حتى في أجهزة منفصلة. على مطوّري الأنظمة توفير أداة دمج تقبل واحدًا أو أكثر من مصادر إدخال الصوت من Android، ثم تدمج هذه المصادر بطريقة مناسبة مع مصادر الصوت الخارجية التي تتطلّبها المركبة. توفّر طبقة تجريد الأجهزة (HAL) الخاصة بالتحكّم في Android آلية مختلفة لتوصيل الأصوات التي يتم إنشاؤها خارج Android إلى Android:

  • طلب أولويّة الصوت
  • القيود المفروضة على مستوى الصوت أو مستوى الكسب
  • تغييرات مستوى الصوت ومستوى الكسب

يكون تنفيذ طبقة تجريد الأجهزة (HAL) الخاصة بالصوت والخلاط الخارجي مسؤولَين عن ضمان سماع الأصوات الخارجية المهمة للسلامة وعن دمجها في التدفقات التي يوفّرها نظام التشغيل Android وتوجيهها إلى السماعات المناسبة.

أصوات Android

قد تحتوي التطبيقات على مشغّل واحد أو أكثر يتفاعلون من خلال واجهات برمجة التطبيقات العادية لنظام Android (على سبيل المثال، AudioManager للتحكّم في التركيز أو MediaPlayer للبث) لإصدار دفق واحد أو أكثر من بيانات الصوت المنطقية. يمكن أن تكون هذه البيانات أحادية القناة أو 7.1 محيطية، ولكن يتم توجيهها ومعالجتها كمصدر واحد. يرتبط بث التطبيق بـ AudioAttributes التي تقدّم للنظام تلميحات حول كيفية التعبير عن الصوت.

يتم إرسال التدفقات المنطقية من خلال AudioService وتوجيهها إلى أحد تدفقات الإخراج المادية المتاحة (واحد فقط)، وكل منها هو ناتج خلاط ضمن AudioFlinger. بعد دمج سمات الصوت في بث مادي، لن تعود هذه السمات متاحة.

بعد ذلك، يتم تسليم كل بث مادي إلى Audio HAL لعرضه على الجهاز. في تطبيقات السيارات، يمكن أن تكون أجهزة العرض برامج ترميز محلية (مشابهة للأجهزة الجوّالة) أو معالجًا بعيدًا على مستوى الشبكة الفعلية للسيارة. في كلتا الحالتين، تقع على عاتق تنفيذ طبقة تجريد الأجهزة الصوتية مهمة تقديم بيانات العيّنات الفعلية وجعلها مسموعة.

البث المباشر الخارجي

يمكن إرسال تدفقات الصوت التي لا يجب توجيهها من خلال Android (لأسباب تتعلق بالشهادة أو التوقيت) مباشرةً إلى جهاز المزج الخارجي. اعتبارًا من Android 11، يمكن الآن لطبقة تجريد الأجهزة (HAL) طلب التركيز على هذه الأصوات الخارجية لإبلاغ Android كي يتمكّن من اتّخاذ الإجراءات المناسبة، مثل إيقاف الوسائط مؤقتًا أو منع التطبيقات الأخرى من التركيز.

إذا كانت عمليات البث الخارجية عبارة عن مصادر وسائط يجب أن تتفاعل مع بيئة الصوت التي ينشئها نظام التشغيل Android (على سبيل المثال، إيقاف تشغيل ملف MP3 عند تشغيل موالف خارجي)، يجب أن يتم تمثيل عمليات البث الخارجية هذه من خلال تطبيق Android. سيطلب هذا التطبيق أولويّة الصوت نيابةً عن مصدر الوسائط بدلاً من طبقة تجريد الأجهزة (HAL)، وسيردّ على إشعارات التركيز من خلال بدء المصدر الخارجي وإيقافه حسب الحاجة ليتوافق مع سياسة التركيز في Android.

ويتحمّل التطبيق أيضًا مسؤولية معالجة أحداث مفاتيح الوسائط، مثل التشغيل والإيقاف المؤقت. إحدى الآليات المقترَحة للتحكّم في هذه الأجهزة الخارجية هي HwAudioSource. لمزيد من المعلومات، يُرجى الاطّلاع على ربط جهاز إدخال في AAOS.

أجهزة الإخراج

على مستوى طبقة تجريد الأجهزة الصوتية (HAL)، يوفّر نوع الجهاز AUDIO_DEVICE_OUT_BUS جهاز إخراج عامًا لاستخدامه في أنظمة الصوت بالمركبة. يتوافق جهاز الناقل مع المنافذ التي يمكن تحديد عناوينها (حيث يمثّل كل منفذ نقطة نهاية لبث مادي)، ومن المتوقّع أن يكون نوع جهاز الإخراج الوحيد المتوافق في المركبة.

يمكن أن يستخدم تنفيذ النظام منفذ ناقل واحدًا لجميع أصوات Android، وفي هذه الحالة، يمزج Android كل الأصوات معًا ويسلّمها كتدفق واحد. بدلاً من ذلك، يمكن أن توفّر طبقة HAL منفذ ناقل واحدًا لكل CarAudioContext للسماح بتسليم أي نوع من الصوت بشكل متزامن. ويتيح ذلك تنفيذ HAL لدمج الأصوات المختلفة وخفض مستوى صوتها حسب الرغبة.

يتم تحديد سياقات الصوت لأجهزة الإخراج من خلال الملف car_audio_configuration.xml. لمزيد من المعلومات، يُرجى الاطّلاع على إعدادات سياسة الصوت.