Мне интересно получить доступ к обоим микрофонам на телефоне с помощью библиотеки Android Oboe. Большинство телефонов имеют конфигурацию с двумя микрофонами, и я хотел бы читать данные с обоих одновременно. Я расширил сэмпл LiveAffect из Oboe и попробовал следующее:
Имею два гобоя :: AudioStream, по одному на каждый микрофон на моем телефоне (Note 9 и Pixel 1). Запуск только одного из потоков работает нормально, я могу читать данные и воспроизводить их / сохранять в файл. Но запуск обоих потоков не работает (я получаю следующую ошибку при попытке запустить второй поток через
stream->requestStart()
: E / AUDIO-APP: Ошибка запуска потока. ErrorInvalidState). По-видимому, запуск двух входных потоков является ограничением Android, как обсуждается в этом вопросе SO: Android Oboe Library: возможна запись 2 потоков с 2 записывающих устройств?Один поток, но с двумя каналами. Два микрофона на моем Note 9 являются частью одной группы, но когда я открываю поток с любым из них с 2 каналами (
->setChannelCount(oboe::ChannelCount::Stereo);
), я получаю дублирующиеся данные в обоих каналах только для одного микрофона. Я пробовал поиграть сAudioStreamBuilder
настройками, например с->setInputPreset(oboe::InputPreset::Camcorder)
. Ни одна изInputPresets
настроек не исправила это, данные по-прежнему отображались в обоих каналах.
Обе попытки не сработали и с использованием бэкэнда OpenSL.