صوتي

رمز Android Audio HAL

تعمل طبقة تجريد أجهزة الصوت (HAL) في Android على توصيل واجهات برمجة التطبيقات ذات المستوى الأعلى والإطار الخاص بالصوت في 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 وتبدأ بالحرف "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 .