صوت HAL

تعمل طبقة تجريد أجهزة الصوت (HAL) في Android على android.media واجهات برمجة التطبيقات (API) الخاصة بإطار عمل الصوت عالي المستوى في android.media تشغيل الصوت والأجهزة الأساسية. يحدد Audio HAL الواجهة القياسية التي تستدعيها خدمات الصوت. يجب أن يتم تنفيذه حتى تعمل أجهزة الصوت بشكل صحيح.

تقدم هذه الصفحة نظرة عامة على HAL الصوتي وتوفر تفاصيل عن واجهة برمجة التطبيقات ومتطلبات التنفيذ.

واجهة الصوت HAL

يتم تعريف واجهة HAL الصوتية باستخدام HIDL في ملفات .hal ومخططات XSD لملفات التكوين ، كما هو موضح على النحو التالي:

audio_hal

الشكل 1: واجهة Audio HAL

ملفات التكوين

تعتبر ملفات تكوين XML الخاصة بالسياسة الصوتية والتأثيرات الصوتية جزءًا من واجهة Audio HAL. يجب أن تتوافق هذه الملفات مع مخططاتها ، ويتم التحقق من المطابقة عن طريق اختبارات VTS.

كجزء من تطبيق HAL الصوتي ، يجب عليك إنشاء ملف تكوين نهج صوتي يصف هيكل الصوت . يجب الإعلان عن إمكانات HAL الصوتية في ملف audio_policy_configuration.xml لكي يستخدمها إطار العمل.

واجهة برمجة تطبيقات Audio HAL

يحتوي الصوت HAL على واجهات برمجة التطبيقات التالية:

  • Core HAL
  • تأثيرات HAL
  • HAL المشترك

يتم وصف كل من واجهات برمجة التطبيقات هذه في الأقسام التالية.

Core HAL

Core HAL هي واجهة برمجة التطبيقات الرئيسية المستخدمة بواسطة AudioFlinger لتشغيل الصوت والتحكم في توجيه الصوت. بعض الواجهات الرئيسية هي كما يلي:

  • IDeviceFactory.hal هي نقطة الدخول إلى واجهة برمجة التطبيقات.
  • IDevice.hal و IPrimaryDevice.hal تتضمن أساليب مثل setMasterVolume أو openInputStream .
  • التدفقات أحادية الاتجاه وتستخدم بواسطة AudioFlinger لإرسال أو استقبال الصوت من وإلى HAL عبر IStream.hal و IStreamOut.hal و IStreamIn.hal .

يسرد الجدول التالي موقع مكونات Core HAL المفيدة:

مكون HAL الأساسي موقع
أحدث نسخة من API /hardware/interfaces/audio/6.0
أنواع خاصة بأحدث Core HAL API /hardware/interfaces/audio/6.0/types.hal
ملف تكوين نهج الصوت مخطط XSD /hardware/interfaces/audio/6.0/config/audio_policy_configuration.xsd

التنفيذ الافتراضي لـ Core HAL API ( /hardware/interfaces/audio/core/all-versions/default/ ) هو غلاف حول تنفيذ HAL قبل Treble باستخدام المكتبات المشتركة القديمة . يمكن أيضًا اعتبار التطبيق الافتراضي كمرجع عند تنفيذ إصدارات جديدة من HALs الصوتية التي تتفاعل مع برامج تشغيل kernel مباشرةً.

تأثيرات HAL

يتم استخدام Effects HAL API بواسطة إطار عمل التأثيرات للتحكم في التأثيرات الصوتية. يمكنك أيضًا تكوين تأثيرات المعالجة المسبقة مثل التحكم التلقائي في الكسب وقمع الضوضاء من خلال Effects HAL API.

يسرد الجدول التالي موقع مكونات HAL للتأثيرات المفيدة:

مكون HAL التأثيرات موقع
أحدث نسخة من API /hardware/interfaces/audio/effect/6.0/
تأثير مخطط XSD لملف التكوين /hardware/interfaces/audio/effect/6.0/xml/audio_effects_conf.xsd

لمزيد من المعلومات ، راجع تطبيق نموذج لـ Effects API ( /hardware/interfaces/audio/effect/all-versions/default/ ) وقسم التأثيرات الصوتية

HAL المشترك

HAL المشترك عبارة عن مكتبة من أنواع البيانات الشائعة المستخدمة بواسطة واجهات برمجة تطبيقات HAL الأساسية والتأثيرات. لا يحتوي على واجهات ويحتوي على ما يلي:

  • التعريفات ( /hardware/interfaces/audio/common/6.0/types.hal ) التي تمت مشاركتها بواسطة واجهات برمجة التطبيقات ( /hardware/interfaces/audio/common/6.0/types.hal ) الأساسية /hardware/interfaces/audio/common/6.0/types.hal .
  • الأدوات المساعدة ( /hardware/interfaces/audio/common/all-versions ) المستخدمة للمساعدة في الترميز ضد واجهات برمجة تطبيقات HIDL للتطبيقات والعملاء والاختبارات.

متطلبات

بالإضافة إلى تنفيذ HAL الصوتي وإنشاء ملف تكوين سياسة الصوت ، يجب الالتزام بمتطلبات HAL التالية:

  • إذا كان الالتقاط من أجل Sound Trigger (الالتقاط من المخزن المؤقت للكلمة الساخنة DSP) مدعومًا بملف تعريف إدخال واحد ، فيجب أن يدعم التنفيذ عدد التدفقات النشطة في ملف التعريف هذا المقابل لعدد الجلسات المتزامنة التي يدعمها Sound Trigger HAL.
  • تزامن المكالمة الصوتية TX والتقاطها من معالج التطبيق كما هو مفصل في صفحة الالتقاط المتزامن .

معلومات الإصدار

يسرد الجدول التالي رقم إصدار HAL لكل إصدار Android.

نسخة أندرويد نسخة HAL
أندرويد 11 6.0
أندرويد 10 5.0
أندرويد 9 4.0
أندرويد 8 2.0