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