我对使用 Android Oboe 库访问手机上的两个麦克风很感兴趣。大多数手机都有双麦克风配置,我想同时从两者读取数据。我扩展了双簧管的“LiveAffect”样本,并尝试了以下方法:
有两个双簧管::AudioStream,一个用于我手机上的每个麦克风(注 9 和像素 1)。只运行一个流工作正常,我能够读取数据并播放/保存到文件。但是启动两个流都不起作用(尝试通过以下方式启动第二个流时出现以下错误
stream->requestStart()
:E/AUDIO-APP:错误启动流。ErrorInvalidState)。显然,启动两个输入流是一个 Android 限制,正如这个 SO 问题中所讨论的那样:Android Oboe Library: 2 个流从 2 个录制设备录制可能吗?有一个流但有 2 个频道。
->setChannelCount(oboe::ChannelCount::Stereo);
我的 Note 9 上的两个麦克风属于同一组,但是当我打开一个带有 2 个通道(我尝试过使用AudioStreamBuilder
设置,例如 setting->setInputPreset(oboe::InputPreset::Camcorder)
。没有任何InputPresets
设置修复它,仍然在两个通道中镜像数据。
两次尝试都无法使用 OpenSL 后端。