الصوت

رمز 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.
Binder IPC
تسهّل وكلاء Binder IPC التواصل بين حدود العمليات. تقع الوكلاء في frameworks/av/media/libmedia وتبدأ بالحرف "I".
خادم الوسائط
يحتوي خادم الوسائط على خدمات الصوت، وهي الرمز الفعلي الذي يتفاعل مع عمليات تنفيذ طبقة تجريد الأجهزة (HAL). يقع خادم الوسائط في frameworks/av/services/audioflinger.
HAL
تحدّد طبقة تجريد الأجهزة (HAL) الواجهة العادية التي تستدعيها خدمات الصوت والتي يجب تنفيذها لكي تعمل أجهزة الصوت بشكل صحيح. لمزيد من التفاصيل، يُرجى الرجوع إلى واجهة طبقة تجريد الأجهزة (HAL) الصوتية والتعليقات في ملفات *.hal الخاصة بدليل إصدار طبقة تجريد الأجهزة (HAL) المقابل.
برنامج تشغيل النواة
يتفاعل برنامج تشغيل الصوت مع أجهزتك وعملية تنفيذ طبقة تجريد الأجهزة (HAL). يمكنك استخدام Advanced Linux Sound Architecture (ALSA) أو Open Sound System (OSS) أو برنامج تشغيل مخصّص (طبقة تجريد الأجهزة (HAL) لا تعتمد على برنامج التشغيل).

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

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