Google is committed to advancing racial equity for Black communities. See how.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

الصوت

رمز 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 الصوتية في hardware/libhardware/include/hardware . للحصول على التفاصيل ، راجع ملف الصوت .
سائق نواة
يتفاعل برنامج تشغيل الصوت مع أجهزتك وتنفيذ HAL. يمكنك استخدام Advanced Linux Sound Architecture (ALSA) أو Open Sound System (OSS) أو برنامج تشغيل مخصص (HAL هو برنامج تشغيل غير محدد).

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

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