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