2010-11-17 44 views
8

Vì vậy, bất kỳ ai coi trọng muối của họ trong cộng đồng phát triển Android đều biết về vấn đề liên quan đến âm thanh độ trễ thấp trong Android 3434. Đối với những người không, bạn có thể giáo dục chính mình ở đây. http://code.google.com/p/android/issues/detail?id=3434Giải pháp về độ trễ âm thanh của Android

Tôi đang tìm bất kỳ giải pháp tạm thời nào cho dự án cá nhân của mình. Tôi đã nghe nói về việc phơi bày giao diện riêng cho NDK bằng cách tự xây dựng Android của riêng bạn và sửa đổi NDK.

Tất cả những gì tôi cần là một cách để truy cập trình điều khiển alsa cấp thấp đã được đóng gói với bản dựng 2.2 chuẩn. Tôi muốn có khả năng gửi PCM trực tiếp đến phần cứng âm thanh trên thiết bị của mình. Tôi không quan tâm rằng các ứng dụng kết quả sẽ không được phân phối trên thị trường, và có khả năng sẽ không chạy với bất kỳ thiết bị khác hơn tôi.

Bất kỳ ai có bất kỳ ý tưởng hữu ích nào?

-Griff

EDIT: Tôi nên đề cập đến, tôi biết AudioTrack cung cấp chức năng này, nhưng tôi muốn độ trễ thấp hơn nhiều - AudioTrack ngồi xung quanh 300ms, tôi muốn ở đâu đó xung quanh 20-30 ms.

Trả lời

7

Griff, đó chỉ là vấn đề, NDK không cải thiện vấn đề độ trễ đã biết (thậm chí là tài liệu). Lớp trừu tượng phần cứng trong mã nguồn gốc hiện đang thêm vào độ trễ, do đó, nó không chỉ là về quyền truy cập vào các trình điều khiển cấp thấp (btw bạn không nên dựa vào các trình điều khiển alsa đang có anyway).

+1

Gah. Tôi đã hy vọng đó sẽ không phải là trường hợp. Tôi thực sự đã có cơ hội nói chuyện với những người Android tại GDC 2011, và dường như nó không hoàn toàn là vấn đề phần cứng, mà là vấn đề kiến ​​trúc không dễ giải quyết. – Griffin

+0

Xem nhận xét của @Ian Ni-Lewis - mọi thứ đang trở nên tốt hơn với 4.1 –

+0

Tôi dự đoán rằng sẽ không có độ phân giải kiến ​​trúc, vì Google không quan tâm đến hiệu suất thực tế của các thiết bị khai thác dữ liệu này làm điện thoại thông minh. –

1

Android: sound API (deterministic, low latency) bao gồm sự cân bằng khá tốt. TL; DR: NDK mang lại cho bạn một lợi ích nhỏ bởi vì các chủ đề có thể chạy ở mức ưu tiên cao hơn, nhưng lợi ích này là vô nghĩa trước Jellybean vì toàn bộ hệ thống âm thanh được điều chỉnh cho Java.

Galaxy Nexus chạy 4.1 có thể nhận được khá gần 30ms độ trễ đầu ra.

+0

Tuyệt vời, vì vậy một thiết bị phần cứng cụ thể sẽ hoạt động nhưng chỉ tốt hơn một chút; điều này đang trở thành trò chơi không tổng cộng. –

Các vấn đề liên quan