כדי לקבל את זמן האחזור הנמוך ביותר של האודיו, מומלץ להשתמש ב-Oboe.
אבוב
Oboe משתמשת באודיו מקומי, והיא מבוססת על AAudio ל-Android מגרסה 8.1 ואילך ועל OpenSL ES לגרסאות ישנות יותר של Android. כדי להשיג את זמן האחזור הנמוך ביותר האפשרי במכשיר, מגדירים את 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)
ב-builder של Oboe. -
משתמשים בגודל המאגר הזמני ובקצב הדגימה המומלצים שמוחזר על ידי android.media.AudioManager.getProperty(java.lang.String).
הערה: צריך להשתמש באותו גודל מאגר ובאותה תדירות דגימה גם לקלט.
- כדאי שהטיפולים בקריאות החוזרות (callbacks) יהיו קצרים, ללא שימוש מוגזם ב-CPU או חסימה ללא הגבלה. הימנעו מהפרת תעדוף.
- מומלץ להשתמש באלגוריתמים לא חוסמים כדי לתקשר בין פונקציות ה-callback של הקלט והפלט, ובין פונקציות ה-callback לשאר האפליקציה.
מקורות מידע נוספים
source.android.com
האתר source.android.com מיועד בעיקר ליצרני ציוד מקורי (OEM) שמפתחים מכשירי Android, ולספקי SoC שמייצאים רכיבים ליצרני הציוד המקורי האלה.
עם זאת, באתר הזה יש מידע רב שימושי על זמן אחזור, ולכן מומלץ לעיין בו. אפשר לעיין במאמרים שבקטע זמן אחזור של אודיו.
android-ndk
אם יש לכם שאלות לגבי השימוש באודיו מקורי של Android, תוכלו לפרסם אותן בקבוצת הדיון android-ndk.
דיווח על באגים ב-Oboe
אם נתקלתם בבעיות בשימוש ב-Oboe, תוכלו לדווח על באג.
סרטונים
- תחילת העבודה עם Oboe
- אודיו עם זמן אחזור קצר – כי האוזניים שלכם שווה את זה
- Android Dev Summit 2018.
- הצלחה ב-Android – איך מבצעים אופטימיזציה של אפליקציית אודיו ל-Android
- Android Developer Challenge 2018.
- אודיו באיכות גבוהה ב-Android (Google I/O 2013)
- כל הסרטון עוסק בזמן אחזור.
- יצירת חוויות מולטימדיה מעולות ב-Android (Google I/O 2014)
- ה-14 הדקות הראשונות עוסקות באודיו באופן כללי ובזמן אחזור קלט בפרט.
- זמן אחזור אודיו: גודלי מאגרים זמניים (100 Days of Google Dev)
- תיאור הקשר בין זמן האחזור של האודיו, גדלי המאגרים ותזמון המשימות.