برای کمترین تأخیر صوتی ممکن، توصیه میکنیم از ساز Oboe استفاده کنید.
ابوا
اُبوا از صدای بومی استفاده میکند و بر اساس AAudio برای اندروید ۸.۱ (سطح API ۲۷) و بالاتر و OpenSL ES ساخته شده است. برای دستیابی به کمترین تأخیر ممکن برای یک دستگاه، setPerformanceMode(oboe::PerformanceMode::LowLatency) و setSharingMode(oboe::SharingMode::Exclusive) را تنظیم کنید. برای اطلاعات بیشتر در مورد اُبوا، به راهنمای شروع به کار ، README.md و راهنمای کامل مراجعه کنید. برای مشاهده یک برنامه نمونه با استفاده از اُبوا، به برنامه Soundboard مراجعه کنید.
اگر AudioTrack برای ایجاد جریانهای صوتی خروجی در جاوا برای برنامههای حساس به تأخیر استفاده میکنید، از حالت PERFORMANCE_MODE_LOW_LATENCY استفاده کنید.
چک لیست اجرا
برای استفاده از صدای بومی اندروید:
- اندروید NDK را دانلود و نصب کنید.
- راهنمای شروع به کار با اُبوا را دنبال کنید.
- تابعهای
setPerformanceMode(oboe::PerformanceMode::LowLatency)وsetSharingMode(oboe::SharingMode::Exclusive)را روی سازندهی ابوا فراخوانی کنید. از اندازه بافر و نرخ نمونهبرداری بومی توصیهشده که توسط
android.media.AudioManager.getProperty(java.lang.String)برگردانده میشود، استفاده کنید.کنترلکنندههای فراخوانی برگشتی خود را کوتاه نگه دارید، بدون استفادهی بیش از حد از CPU یا مسدودسازی نامحدود. از وارونگی اولویت خودداری کنید.
استفاده از الگوریتمهای غیر مسدودکننده را برای ارتباط بین کنترلکنندههای فراخوانی ورودی و خروجی، و بین کنترلکنندههای فراخوانی و بقیه برنامه خود در نظر بگیرید.
اندروید-ndk
اگر در مورد نحوه استفاده از صدای بومی اندروید سؤالی دارید، به گروه بحث android-ndk بپیوندید.
گزارش اشکالات در Oboe
اگر در استفاده از Oboe مشکلی دارید، یک اشکال (bug) ثبت کنید .
ویدیوها
- شروع کار با اُبوا
- صدای با تأخیر کم - چون گوشهای شما ارزشش را دارند (اجلاس توسعهدهندگان اندروید ۲۰۱۸)
- برنده شدن در اندروید - نحوه بهینه سازی یک برنامه صوتی اندروید (چالش توسعه دهندگان اندروید 2018)
- صدای با عملکرد بالا در اندروید (گوگل آی/او ۲۰۱۳)
- ساخت تجربیات چندرسانهای عالی در اندروید (گوگل آی/او ۲۰۱۴)
- تأخیر صوتی: اندازه بافر (۱۰۰ روز توسعه گوگل)