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

Để có độ trễ âm thanh thấp nhất có thể, chúng tôi khuyên bạn nên sử dụng Oboe .

kèn ô-boa

Oboe sử dụng âm thanh gốc và được xây dựng trên AAudio dành cho Android 8.1+ và OpenSL ES dành cho các phiên bản Android cũ hơn. Để đạt được độ trễ thấp nhất có thể cho thiết bị, hãy đặt setPerformanceMode(oboe::PerformanceMode::LowLatency)setSharingMode(oboe::SharingMode::Exclusive) . Xem Hướng dẫn bắt đầu , README.mdHướng dẫn đầy đủ để biết thêm thông tin về Oboe. Tham khảo ứng dụng Soundboard để biế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 thực hiện

Để 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 cho Oboe.
  3. Gọi setPerformanceMode(oboe::PerformanceMode::LowLatency)setSharingMode(oboe::SharingMode::Exclusive) trên trình tạo Oboe.
  4. Sử dụng kích thước bộ đệm gốc và tốc độ mẫu được đề xuất do android.media.AudioManager.getProperty(java.lang.String) trả về.

    Lưu ý: Kích thước bộ đệm và tốc độ mẫu tương tự cũng nên được sử dụng cho đầu vào.

  5. Giữ trình xử lý gọi lại của bạn ngắn gọn, không sử dụng CPU nhiều 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 việc sử dụng các thuật toán không chặn để liên lạc 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 của bạn.

Các nguồn lực khác

nguồn.android.com

Trang web source.android.com được thiết kế chủ yếu cho các OEM xây dựng thiết bị Android và các nhà cung cấp SoC cung cấp linh kiện cho các OEM này.

Tuy nhiên, có rất nhiều thông tin hữu ích về độ trễ tại trang web này, vì vậy bạn có thể muốn xem lại nó. Xem các bài viết tại Độ trễ âm thanh.

android-ndk

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

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

Nếu bạn gặp sự cố khi sử dụng Oboe, bạn có thể gửi lỗi .

Video

Bắt đầu với Oboe
Âm thanh có độ trễ thấp - Bởi vì đôi tai của bạn xứng đáng
Hội nghị thượng đỉnh dành cho nhà phát triển Android 2018
Chiến thắng trên Android - Cách tối ưu hóa ứng dụng âm thanh Android
Thử thách dành cho nhà phát triển Android 2018.
Âm thanh hiệu suất cao trên Android (Google I/O 2013)
Toàn bộ video nói về độ trễ.
Xây dựng trải nghiệm đa phương tiện tuyệt vời trên Android (Google I/O 2014)
14 phút đầu tiên 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ộ đệm (100 ngày sử dụng Google Dev)
Mô tả mối quan hệ giữa độ trễ âm thanh, kích thước bộ đệm và lập lịch tác vụ.