Запись воспроизведение аудио напрямую с помощью libmedia AudioFlinger

#android #android-ndk #audioflinger

#Android #android-ndk #audioflinger

Вопрос:

Я проверяю возможность прямого подключения к libmedia AudioFlinger для воспроизведения записи необработанного аудио (например, AudioTrack AudioRecord).

Цель состоит в том, чтобы обойти ограничение минимального размера буфера этих двух классов Java. Я знаю, что в 2.3 представлен OpenSL, но я хочу сделать это для 2.2 и ниже.

Кто-нибудь делал это раньше? Есть ли какая-нибудь хорошая эталонная реализация, которая использует это? Если нет, то как бы вы подошли к созданию ссылки на эту библиотеку и использованию ее для обхода минимального размера буфера?

Спасибо

Ответ №1:

К сожалению, доступно только два поддерживаемых аудио API, и вы упомянули оба (AudioTrack и OpenSL). Любой более низкий уровень, чем этот, и вы будете мешать микшированию звука, уже выполняемому устройством для таких вещей, как SFX и телефонные звонки. Также, поскольку нет API для звука нижнего уровня, вам нужно будет взломать, что, вероятно, не то, что вы хотите делать по очевидным причинам совместимости.