Как использовать Android-звук с низкой задержкой

Проблема:

Как вы, возможно, слышали, Android не предоставляет аудио API с низкой задержкой. Под звуком с низкой задержкой я подразумеваю то, что вы должны иметь возможность получать аудиосигналы от микрофона и воспроизводить звук без большого промежутка времени между ними (например, 5-7 мс)

Я пробовал старую java (с AudioRecord и AudioTrack) и «новый» OpenSL ES. Они ужасны и делают приложение непригодным для использования. Проблема была подробно описана здесь. Кстати, iOS API может вызывать задержку около 5-7 мс.

Ищу обходные пути:

Но я все равно пытаюсь сделать звук с низкой задержкой. Примерно так описывается этот ответ.

«Однако я смог добиться этого удовлетворительно, только написав собственный код, который выполнял внутреннее микширование и обращался к низкоуровневому API воспроизведения звука только для воспроизведения окончательного микшированного вывода. В высокоуровневые способы воспроизведения звуков в .Net Compact Framework: теоретически способны к полифонии, но на практике работают ужасно (много сбоев, заикания и искажений). »

Имеет ли это смысл для Android? Ответ обескураживает.

Итак, мой вопрос. Действительно ли нет способа добиться задержки звука в 10 мс с Android?

Если честно, я не жду решения в ближайшее время, но просто желаю, чтобы один великий ум получил ответ на эту проблему.

7
задан Community 23 May 2017 в 10:34
поделиться