זמן אחזור אודיו למפתחי אפליקציות

כדי להשיג את זמן טעינת האודיו (audio latency) הנמוך ביותר, מומלץ להשתמש ב-Oboe.

אבוב

Oboe משתמש באודיו מקורי ומבוסס על AAudio ל-Android 8.1 (רמת API‏ 27) ומעלה ועל OpenSL ES. כדי להשיג את זמן הטעינה הקצר ביותר במכשיר, צריך להגדיר את setPerformanceMode(oboe::PerformanceMode::LowLatency) ואת setSharingMode(oboe::SharingMode::Exclusive). מידע נוסף על Oboe זמין במדריך לתחילת העבודה, README.md ובמדריך המלא. אפשר לראות אפליקציה לדוגמה שמשתמשת ב-Oboe באפליקציית Soundboard.

אם אתם משתמשים ב-AudioTrack כדי ליצור ב-Java זרמי אודיו פלט לאפליקציות שרגישות לזמן אחזור, אתם צריכים להשתמש במצב PERFORMANCE_MODE_LOW_LATENCY.

רשימת משימות להטמעה

כדי להשתמש באודיו המקורי של Android:

  1. מורידים ומתקינים את Android NDK.
  2. פועלים לפי המדריך לתחילת העבודה בנושא Oboe.
  3. Call setPerformanceMode(oboe::PerformanceMode::LowLatency) and setSharingMode(oboe::SharingMode::Exclusive) on the Oboe builder.
  4. משתמשים בגודל המומלץ של שטח אחסון זמני מקורי ובקצב הדגימה שמוחזרים על ידי android.media.AudioManager.getProperty(java.lang.String).

  5. חשוב לשמור על קצרים את ה-callback handlers, בלי שימוש במעבד שמתפרץ או חסימה בלתי מוגבלת. הימנעו מהיפוך סדר העדיפויות.

  6. מומלץ להשתמש באלגוריתמים לא חוסמים כדי ליצור תקשורת בין מטפלי הקריאות החוזרות של הקלט והפלט, ובין מטפלי הקריאות החוזרות לבין שאר האפליקציה.

android-ndk

אם יש לכם שאלות לגבי השימוש באודיו מקורי של Android, אתם יכולים להצטרף לקבוצת הדיון android-ndk.

דיווח על באגים ב-Oboe

אם נתקלתם בבעיות בשימוש ב-Oboe, אתם יכולים לדווח על באג.

סרטונים