Để có độ trễ âm thanh thấp nhất có thể, bạn nên sử dụng Oboe.
Kèn oboe
Oboe sử dụng âm thanh gốc và được xây dựng trên AAudio cho Android 8.1 trở lên và OpenSL ES cho các phiên bản Android cũ. Để đạt được độ trễ thấp nhất có thể cho một thiết bị, hãy đặt setPerformanceMode(oboe::PerformanceMode::LowLatency)
và setSharingMode(oboe::SharingMode::Exclusive)
.
Hãy xem Hướng dẫn bắt đầu, README.md
và Hướng dẫn đầy đủ để biết thêm thông tin về Oboe. Hãy tham khảo ứng dụng Soundboard để biết một ứng dụng mẫu sử dụng Oboe.
Lưu ý: Nếu bạn sử dụng AudioTrack để tạo luồng âm thanh đầu ra trong Java cho các ứng dụng nhạy cảm với độ trễ, hãy sử dụng chế độ PERFORMANCE_MODE_LOW_LATENCY
.
Danh sách kiểm tra việc triển khai
Cách sử dụng âm thanh gốc của Android:
- Tải và cài đặt Android NDK.
- Làm theo Hướng dẫn bắt đầu sử dụng cho Oboe.
-
Gọi
setPerformanceMode(oboe::PerformanceMode::LowLatency)
vàsetSharingMode(oboe::SharingMode::Exclusive)
trên trình tạo Oboe. -
Sử dụng kích thước bộ đệm gốc và tốc độ lấy mẫu được đề xuất do android.media.AudioManager.getProperty(java.lang.String) trả về.
Lưu ý: Bạn cũng nên sử dụng cùng một dung lượng bộ nhớ đệm và tốc độ lấy mẫu cho dữ liệu đầu vào.
- Giữ cho trình xử lý gọi lại ngắn gọn, không sử dụng CPU theo kiểu bùng nổ hoặc chặn không giới hạn. Tránh đảo ngược mức độ ưu tiên.
- Cân nhắc sử dụng các thuật toán không chặn để giao tiếp giữa trình xử lý gọi lại đầu vào và đầu ra, cũng như giữa trình xử lý gọi lại và phần còn lại của ứng dụng.
Tài nguyên khác
source.android.com
Trang web source.android.com chủ yếu được thiết kế cho các OEM xây dựng thiết bị Android và các nhà cung cấp SoC cung cấp thành phần cho các OEM này.
Tuy nhiên, trang web này có rất nhiều thông tin hữu ích về độ trễ, vì vậy, bạn nên xem xét trang web này. Xem các bài viết tại phần Độ trễ âm thanh.
android-ndk
Nếu có câu hỏi về cách sử dụng âm thanh gốc của Android, bạn có thể đặt câu hỏi tại nhóm thảo luận android-ndk.
Báo cáo lỗi trên Oboe
Nếu gặp vấn đề khi sử dụng Oboe, bạn có thể gửi lỗi.
Video
- Làm quen với Oboe
- Âm thanh có độ trễ thấp – Vì đôi tai của bạn xứng đáng được tận hưởng
- Hội nghị Nhà phát triển Android 2018.
- Thành công trên Android – Cách tối ưu hoá ứng dụng âm thanh trên Android
- Android Developer Challenge 2018.
- Âm thanh hiệu suất cao trên Android (Google I/O 2013)
- Toàn bộ video nói về độ trễ.
- Tạo trải nghiệm đa phương tiện tuyệt vời trên Android (Google I/O 2014)
- 14 phút đầu nói về âm thanh nói chung và độ trễ đầu vào nói riêng.
- Độ trễ âm thanh: kích thước bộ nhớ đệm (100 ngày phát triển của Google)
- Mô tả mối quan hệ giữa độ trễ âm thanh, kích thước vùng đệm và việc lên lịch tác vụ.