نظرة عامة

يستند نظام التشغيل 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. بعد دمج سمات الصوت في بث مادي، لن تعود هذه السمات متاحة.

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

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

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

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

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

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

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

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

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