صوتي

رمز Android Audio HAL

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

تحدد بنية الصوت في Android كيفية تنفيذ وظائف الصوت وتشير إلى شفرة المصدر ذات الصلة المشاركة في التنفيذ.

هندسة الصوت

الشكل 1. هندسة صوت Android

إطار تطبيق
يتضمن إطار عمل التطبيق كود التطبيق ، الذي يستخدم واجهات برمجة تطبيقات android.media للتفاعل مع أجهزة الصوت. داخليًا ، يستدعي هذا الرمز فئات الغراء JNI المقابلة للوصول إلى الكود الأصلي الذي يتفاعل مع أجهزة الصوت.
JNI
يستدعي رمز JNI المرتبط بـ android.media رمزًا أصليًا منخفض المستوى للوصول إلى أجهزة الصوت. يقع JNI في frameworks/base/core/jni/ frameworks/base/media/jni .
الإطار الأصلي
يوفر إطار العمل الأصلي مكافئًا أصليًا لحزمة android.media ، حيث يستدعي وكلاء Binder IPC للوصول إلى الخدمات الخاصة بالصوت لخادم الوسائط. يوجد كود إطار العمل الأصلي في frameworks/av/media/libmedia .
بيندر IPC
تعمل وكلاء Binder IPC على تسهيل الاتصال عبر حدود العملية. توجد frameworks/av/media/libmedia في frameworks/av/media/libmedia وتبدأ بالحرف "I".
وسائل الاعلام الخادم
يحتوي خادم الوسائط على خدمات صوتية ، وهي الرمز الفعلي الذي يتفاعل مع تطبيقات HAL الخاصة بك. يقع خادم الوسائط في frameworks/av/services/audioflinger .
هال
يحدد HAL الواجهة القياسية التي تستدعيها خدمات الصوت والتي يجب عليك تنفيذها حتى تعمل أجهزة الصوت لديك بشكل صحيح. لمزيد من التفاصيل ، راجع واجهة HAL الصوتية والتعليقات في ملفات *.hal الخاصة بدليل إصدار HAL المقابل.
سائق نواة
يتفاعل برنامج تشغيل الصوت مع أجهزتك وتنفيذ HAL. يمكنك استخدام Advanced Linux Sound Architecture (ALSA) أو Open Sound System (OSS) أو برنامج تشغيل مخصص (HAL هو برنامج تشغيل غير محدد).

ملاحظة : إذا كنت تستخدم ALSA ، فنحن نوصي external/tinyalsa لجزء المستخدم من برنامج التشغيل بسبب ترخيصه المتوافق (مكتبة وضع المستخدم القياسية مرخصة من GPL).

الصوت الأصلي لنظام Android على أساس Open SL ES (غير معروض)
يتم الكشف عن واجهة برمجة التطبيقات هذه كجزء من Android NDK وهي بنفس مستوى البنية مثل android.media .