我在这里看到两个问题:
1)通过USB输入音频 .
音频输入可以使用android 3.2和libusb完成,但这并不容易(你需要从libusb获取USB描述符,自己解析它们并将正确的控制传输发送到设备等) . 对于某些手机,您可以通过USB获得大约5-10 mS的输入延迟 .
2)实时音频输出 . 这在Android中是一个长期存在的问题,如果你想实时接近(使用Native Audio输出),你现在几乎只限于Galaxy Nexus . 但是,如果掌握USB,您也可以以较短的延迟输出 .
我想如果你遇到让USB工作的麻烦,你可以得到一个带有立体声输入的USB音频设备 . 如果你已经将一个单声道麦克风连接到每个输入通道,那么通过USB输出你就会非常接近你的既定目标 . 您可能想尝试“USB Audio Tester”或“usbEffects”应用程序来查看当前可能的内容 .
在编码混合和输出等方面,您可能希望一个线程读取每个单独的输入源并以小块(一次100-1000个样本)写入队列 . 然后有一个单独的线程读取队列和混合,将输出放到另一个队列,最后一个线程(如果没有通过USB输出,可能在本机代码中)读取混合队列并输出 .