Чтобы добиться минимальной задержки аудио, рекомендуем использовать Oboe.
Гобой
Oboe использует встроенный звук и основан на AAudio для Android 8.1 (уровень API 27) и более поздних версий и OpenSL ES. Чтобы добиться минимальной задержки для устройства, задайте значения setPerformanceMode(oboe::PerformanceMode::LowLatency) и setSharingMode(oboe::SharingMode::Exclusive). Подробнее об Oboe можно узнать из руководства по началу работы, README.md и полного руководства. Пример приложения, в котором используется Oboe, можно найти в Soundboard.
Если вы используете AudioTrack для создания выходных аудиопотоков в Java для приложений, чувствительных к задержкам, используйте режим PERFORMANCE_MODE_LOW_LATENCY.
Контрольный список реализации
Чтобы использовать встроенный аудиопроигрыватель Android:
- Скачайте и установите Android NDK.
- Следуйте руководству по началу работы с Oboe.
- Вызовите
setPerformanceMode(oboe::PerformanceMode::LowLatency)иsetSharingMode(oboe::SharingMode::Exclusive)в конструкторе Oboe. Используйте рекомендуемый размер буфера и частоту дискретизации, возвращаемые функцией
android.media.AudioManager.getProperty(java.lang.String).Обработчики обратных вызовов должны быть короткими, без пиковой нагрузки на ЦП и неограниченной блокировки. Избегайте инверсии приоритетов.
Рекомендуем использовать неблокирующие алгоритмы для обмена данными между обработчиками обратных вызовов ввода и вывода, а также между обработчиками обратных вызовов и остальной частью приложения.
android-ndk
Если у вас есть вопросы о том, как использовать встроенные аудиофункции Android, присоединитесь к группе обсуждения android-ndk.
Как сообщить об ошибке в Oboe
Если у вас возникли проблемы с использованием Oboe, сообщите нам о них.
Видео
- Начало работы с Oboe
- Аудио с низкой задержкой – потому что ваши уши этого достойны (Саммит для разработчиков Android 2018)
- Победа на Android: как оптимизировать аудиоприложение для Android (Android Developer Challenge 2018)
- High Performance Audio on Android (Google I/O 2013)
- Создание мультимедийных приложений для Android (Google I/O 2014)
- Задержка аудио: размеры буфера (100 дней с Google Dev)