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