เราขอแนะนำให้คุณใช้ Oboe เพื่อให้เกิดเวลาในการตอบสนองของเสียงน้อยที่สุด
Oboe
Oboe ใช้เสียงเนทีฟและสร้างขึ้นบน AAudio สำหรับ Android 8.1 (API ระดับ
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)เก็บตัวแฮนเดิลอร์การเรียกกลับไว้สั้นๆ โดยไม่ใช้ CPU มากเกินไปหรือมีการบล็อกที่ไม่จำกัด หลีกเลี่ยงการกลับลำดับความสำคัญ
พิจารณาใช้ อัลกอริทึมที่ไม่บล็อก เพื่อสื่อสารระหว่างตัวแฮนเดิลอร์การเรียกกลับของอินพุต และเอาต์พุต รวมถึงระหว่างตัวแฮนเดิลอร์การเรียกกลับกับส่วนอื่นๆ ของแอปพลิเคชัน
android-ndk
หากมีคำถามเกี่ยวกับวิธีใช้เสียงเนทีฟของ Android โปรดเข้าร่วม กลุ่มสนทนา android-ndk
รายงานข้อบกพร่องใน Oboe
หากพบปัญหาในการใช้ Oboe โปรดยื่นเรื่องรายงานข้อบกพร่อง
วิดีโอ
- เริ่มต้นใช้งาน Oboe
- Low Latency Audio - Because Your Ears Are Worth It (Android Dev Summit 2018)
- Winning on Android - How to optimize an Android audio app (Android Developer Challenge 2018)
- High Performance Audio on Android (Google I/O 2013)
- Building great multimedia experiences on Android (Google I/O 2014)
- Audio latency: buffer sizes (100 Days of Google Dev)