Как читать данные с нескольких микрофонов с помощью Android Oboe / AAudio - PullRequest
1 голос
/ 04 мая 2019

Мне интересно получить доступ к обоим микрофонам на телефоне с помощью библиотеки Android Oboe.Большинство телефонов имеют конфигурацию с двумя микрофонами, и я хотел бы считывать данные с обоих одновременно.Я расширил образец "LiveAffect" из Oboe и попробовал следующее:

  1. Наличие двух гобоев :: AudioStream, по одному для каждого микрофона на моем телефоне (Примечание 9 и Пиксель 1),Запуск только одного из потоков работает нормально, я могу прочитать данные и воспроизвести их / сохранить в файл.Но запуск обоих потоков не работает (я получаю следующую ошибку при попытке запустить второй поток через stream->requestStart(): E / AUDIO-APP: Ошибка запуска потока. ErrorInvalidState ).Очевидно, что запуск двух входных потоков является ограничением Android, как обсуждалось в этом вопросе SO: Библиотека Android Oboe: возможна запись 2 потоков с 2 устройств записи?

  2. Наличие одного потокано с 2 каналами.Два микрофона на моем Note 9 являются частью одной группы, но когда я открываю поток с любым из них с двумя каналами (->setChannelCount(oboe::ChannelCount::Stereo);), я получаю дублирующиеся данные в обоих каналах только для одного микрофона.Я попытался поиграть с настройками AudioStreamBuilder, например, установив ->setInputPreset(oboe::InputPreset::Camcorder).Ни одна из настроек InputPresets не исправила это, по-прежнему отражая данные в обоих каналах.

Обе попытки также не работали с использованием бэкэнда OpenSL.

1 Ответ

1 голос
/ 20 мая 2019

Я вполне уверен, что это проблема с этим конкретным устройством.Пользователь сообщил об идентичной проблеме на форуме JUCE здесь .Я подал ошибку внутренне (id: 133143785) и попытаюсь направить ее в Samsung для дальнейшего расследования.

...