«لایه انتزاعی سختافزار صدا» (HAL) در Android میاناهای برنامهسازی کاربردی چارچوب سطح بالاتر و مختص صدا در
android.media را به
سختافزار و درایورهای صدای زیرین متصل میکند. «لایه انتزاعی سختافزار صدا» میانای استانداردی را تعریف میکند که سرویسهای صوتی با آن تماس میگیرند. برای اینکه سختافزار صوتی عملکرد درستی داشته باشد،
باید HAL صوتی پیادهسازی شود.
این صفحه نمای کلی از Audio HAL ارائه میدهد و جزئیات API و الزامات پیادهسازی آن را ارائه میدهد.
میانای لایه انتزاع سختافزار صوتی
در Android 14 و نسخههای بالاتر، میانای Audio HAL بااستفاده از AIDL تعریف میشود. برای نسخههای قبلی، میانای Audio HAL بااستفاده از HIDL تعریف میشود. به شرکا و فروشندگان SoC توصیه میشود که Audio HAL خود را مجدداً پیادهسازی کنند تا میانای AIDL ارائه دهند.
میاناهای برنامهسازی کاربردی لایه سختافزار جدید برای ویژگیهای اضافهشده در Android 14 و بالاتر فقط با پیادهسازی میانای AIDL پشتیبانی میشوند. در Android 14 و نسخههای بالاتر، هیچ میانای برنامهسازی کاربردی جدیدی به پیادهسازی HIDL اضافه نشده است.
رفتن به AIDL و منسوخ کردن و برداشتن پشتیبانی از نسخههای اصلی قبلی Audio HAL باعث آزاد شدن فضای دیسک و RAM در دستگاهها میشود. این کار منجر به تجربه کاربری روانتر میشود و امکان ارائه ویژگیهای جدیدتر قابلمشاهده برای کاربران نهایی را فراهم میکند.
برای اطلاعات بیشتر درباره تفاوتهای بین AIDL و HIDL Audio HAL، به مقایسه AIDL و HIDL Audio HAL مراجعه کنید.
Audio HAL API
Audio HAL شامل APIهای زیر است:
- «لایه انتزاع سختافزار اصلی» میانای برنامهسازی کاربردی اصلی است که AudioFlinger برای پخش صدا و کنترل مسیریابی صدا از آن استفاده میکند.
میانای برنامهسازی کاربردی «لایه انتزاعی سختافزار جلوهها» توسط چارچوب جلوهها برای کنترل جلوههای صوتی استفاده میشود. همچنین میتوانید جلوههای پیشپردازش مانند کنترل بهره خودکار و حذف نویز را ازطریق میانای برنامهسازی کاربردی Effects HAL پیکربندی کنید.
Common HAL API کتابخانهای از انواع دادههای رایج است که توسط Core و Effects HAL API استفاده میشود. «لایه انتزاع سختافزار مشترک» هیچ میانایی ندارد و هیچ آزمون VTS منسوبی ندارد زیرا فقط ساختارهای داده را تعریف میکند.
برای جزئیات خاص مربوط به AIDL و HIDL، بهترتیب به AIDL Audio HAL و HIDL Audio HAL مراجعه کنید.
الزامات
علاوهبر پیادهسازی «لایه انتزاع سختافزار» صوتی و ایجاد فایل پیکربندی خطمشی صوتی، باید از الزامات «لایه انتزاع سختافزار» زیر پیروی کنید:
اگر ضبط برای «محرک صوتی» (ضبط از بافر DSP کلمه داغ) توسط یک نمایه ورودی پشتیبانی شود، پیادهسازی باید از تعداد جاریسازیهای فعال در این نمایه که متناظر با تعداد جلسههای همزمان پشتیبانیشده توسط «لایه انتزاعی سختافزار محرک صوتی» است پشتیبانی کند.
همزمان بودن انتقال تماس صوتی و ضبط از پردازنده برنامه همانطور که در صفحه ضبط همزمان توضیح داده شده است.