Độ trễ âm thanh dành cho nhà phát triển ứng dụng

Để 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 (cấp độ API 27) trở lên và OpenSL ES. Để đạt được độ trễ thấp nhất có thể cho một thiết bị, hãy đặt setPerformanceMode(oboe::PerformanceMode::LowLatency)setSharingMode(oboe::SharingMode::Exclusive). Để biết thêm thông tin về Oboe, hãy xem Hướng dẫn bắt đầu, README.mdHướng dẫn đầy đủ. Hãy xem ứng dụng Soundboard để biết một ứng dụng mẫu sử dụng Oboe.

Nếu bạn 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 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:

  1. Tải xuống và cài đặt Android NDK.
  2. Làm theo Hướng dẫn bắt đầu sử dụng cho Oboe.
  3. Gọi setPerformanceMode(oboe::PerformanceMode::LowLatency)setSharingMode(oboe::SharingMode::Exclusive) trên trình tạo Oboe.
  4. Sử dụng tốc độ lấy mẫu và dung lượng bộ nhớ đệm gốc được đề xuất do android.media.AudioManager.getProperty(java.lang.String) trả về.

  5. Giữ cho trình xử lý gọi lại của bạn ngắn gọn, không có mức sử dụng CPU đột biến hoặc chặn không giới hạn. Tránh đảo ngược mức độ ưu tiên.

  6. Hãy cân nhắc sử dụng các thuật toán không chặn để giao tiếp giữa các trình xử lý gọi lại đầu vào và đầu ra, cũng như giữa các trình xử lý gọi lại và phần còn lại của ứng dụng.

android-ndk

Nếu bạn có thắc mắc về cách sử dụng âm thanh gốc của Android, hãy tham gia nhóm thảo luận android-ndk.

Báo cáo lỗi trên Oboe

Nếu bạn gặp vấn đề khi sử dụng Oboe, hãy gửi lỗi.

Video