Задержка звука для разработчиков приложений

Для минимально возможной задержки звука мы рекомендуем использовать Гобой .

Гобой

Гобой использует собственный звук и создан на основе 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:

  1. Загрузите и установите Android NDK .
  2. Следуйте руководству по началу работы с гобоем.
  3. Вызовите setPerformanceMode(oboe::PerformanceMode::LowLatency) и setSharingMode(oboe::SharingMode::Exclusive) в конструкторе гобоя.
  4. Используйте рекомендуемый размер собственного буфера и частоту дискретизации, возвращаемые android.media.AudioManager.getProperty(java.lang.String) .

    Примечание. Для ввода также следует использовать тот же размер буфера и частоту дискретизации.

  5. Делайте обработчики обратных вызовов короткими, без чрезмерной загрузки ЦП и неограниченных блокировок. Избегайте инверсии приоритетов.
  6. Рассмотрите возможность использования неблокирующих алгоритмов для взаимодействия между обработчиками обратного вызова ввода и вывода, а также между обработчиками обратного вызова и остальной частью вашего приложения.

Другие источники

источник.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)
Описывает взаимосвязь между задержкой звука, размерами буфера и планированием задач.