我想构建一个 Android 应用程序来从两个麦克风获取音频数据,将声音与内存中的一些混合,然后通过耳机播放声音。这需要实时完成。您能否请我参考一些教程或任何参考资料,以使用 Java eclipse 进行实时音频输入、混合和输出?
到目前为止,我能够录制声音,保存它,然后播放它,但是我找不到任何以这种方式与声音硬件进行实时接口的教程。
注意:一个麦克风通过分线器连接到安卓的 3.5 毫米耳机插孔,另一个通过 USB 端口连接。
谢谢!
我想构建一个 Android 应用程序来从两个麦克风获取音频数据,将声音与内存中的一些混合,然后通过耳机播放声音。这需要实时完成。您能否请我参考一些教程或任何参考资料,以使用 Java eclipse 进行实时音频输入、混合和输出?
到目前为止,我能够录制声音,保存它,然后播放它,但是我找不到任何以这种方式与声音硬件进行实时接口的教程。
注意:一个麦克风通过分线器连接到安卓的 3.5 毫米耳机插孔,另一个通过 USB 端口连接。
谢谢!
我在这里看到两个问题:
1) 通过 USB 输入音频。2) 实时音频输出。这是 Android 中一个长期存在的问题,如果您想接近实时(使用原生音频输出),目前您几乎只能使用 Galaxy Nexus。但是,如果您掌握 USB,您也可以以更少的延迟进行输出。
我想如果你不厌其烦地让 USB 工作,你可以得到一个带立体声输入的 USB 音频设备。如果你在每个输入通道上连接了一个单声道麦克风,那么通过 USB 输出你会非常接近你的既定目标。您可能想尝试“USB Audio Tester”或“usbEffects”应用程序,看看目前有什么可能。
在编码混合和输出等方面,您可能希望一个线程读取每个单独的输入源并以小块写入队列(一次 100-1000 个样本)。然后有一个单独的线程读取队列并混合,将输出放置到另一个队列中,最后一个线程(如果不通过 USB 进行输出,可能在本机代码中)读取混合队列并进行输出。
以下链接http://code.google.com/p/loopmixer/具有处理音频本身的风格。