للحصول على أقل وقت استجابة ممكن للصوت، ننصحك باستخدام Oboe.
Oboe
يستخدم Oboe الصوت الأصلي ويستند إلى AAudio للإصدار Android 8.1 (المستوى
27 من واجهة برمجة التطبيقات) والإصدارات الأحدث وOpenSL ES. لتحقيق أقل وقت استجابة ممكن لجهاز، اضبط setPerformanceMode(oboe::PerformanceMode::LowLatency) وsetSharingMode(oboe::SharingMode::Exclusive). لمزيد من المعلومات عن
Oboe، يُرجى الاطّلاع على دليل البدء وREADME.md والدليل الكامل. يمكنك الاطّلاع على تطبيق Soundboard للحصول على نموذج تطبيق يستخدم Oboe.
إذا كنت تستخدم AudioTrack لإنشاء تدفقات صوتية للناتج في Java للتطبيقات التي تتأثر بوقت الاستجابة، استخدِم وضع PERFORMANCE_MODE_LOW_LATENCY.
قائمة التحقّق من التنفيذ
لاستخدام الصوت الأصلي على Android:
- نزِّل حزمة Android NDK وثبِّتها.
- اتّبِع دليل البدء في Oboe.
- استخدِم
setPerformanceMode(oboe::PerformanceMode::LowLatency)وsetSharingMode(oboe::SharingMode::Exclusive)في أداة إنشاء Oboe. استخدِم حجم ذاكرة التخزين المؤقت الأصلي ومعدّل البيانات في الملف الصوتي المقترَحَين اللذين تعرضهما الدالة
android.media.AudioManager.getProperty(java.lang.String).اجعل معالِجات معاودة الاتصال قصيرة، بدون استخدام وحدة المعالجة المركزية بشكل متقطع أو حظر غير محدود. تجنَّب انعكاس الأولوية.
ننصحك باستخدام خوارزميات غير حظر للتواصل بين معالِجات معاودة الاتصال للإدخال والإخراج، وبين معالِجات معاودة الاتصال وبقية تطبيقك.
android-ndk
إذا كانت لديك أسئلة حول كيفية استخدام الصوت الأصلي على Android، انضم إلى الـ مجموعة المناقشة android-ndk.
الإبلاغ عن الأخطاء في Oboe
إذا واجهت مشاكل في استخدام Oboe، أرسِل تقريرًا عن الخطأ.
الفيديوهات
- بدء استخدام Oboe
- الصوت ذو وقت الاستجابة المنخفض: لأنّ أذنيك تستحقّان ذلك (مؤتمر Android Dev Summit لعام 2018)
- النجاح على Android: كيفية تحسين تطبيق صوتي على Android (تحدّي مطوّري Android لعام 2018)
- الصوت عالي الأداء على Android (مؤتمر Google I/O لعام 2013)
- إنشاء تجارب رائعة للوسائط المتعدّدة على Android (مؤتمر Google I/O لعام 2014)
- وقت استجابة الصوت: أحجام المخزن المؤقت (سلسلة "100 يوم من التطوير على Google")