如何录制第四个输入通道音频

时间:2018-06-27 11:19:37

标签: android android-audiorecord

我有一个带4个输入通道的声卡:单声道,立体声,3,4。有没有什么sdk方式来记录第4通道数据? 现在我只能通过AudioRecord录制单声道/立体声。

2 个答案:

答案 0 :(得分:0)

根据Android docs for AudioRecord,唯一指定的可用通道输入配置是AudioFormat.CHANNEL_IN_MONO或AudioFormat.CHANNEL_IN_STEREO。

但是,看来AudioFormat docs支持的通道输出数量要多得多(或者如果尚未实现,至少要计划实现)。

我认为,要自己实现它本身将是一个挑战,但可能值得这样做(我还没有看到针对此代码或任何开放源代码的任何明显解决方案)。但是,确实存在应用商店中的示例,因此可以根据USB Audio Recorder Pro App通过USB接口进行访问。

JUCE(主要是基于音频的C ++库,可以直接编译为Android .apk)也正在解决此问题,但我尚未看到解决方案(也许在不久的将来)未来)。

我认为您必须直接进入OpenSL(带有JNI的C ++),以接收原始音频,然后将其传递回Java以完成您想对其进行的处理。可能值得研究使用this之类的USB设备通过USB设备进行OpenSL录制,以开始使用。

我知道这有很多链接,但是如果您确实想实现此功能,希望它可以使您入门(如果您曾经启动过,请评论一个链接)。

否则,我希望这对您有帮助!

答案 1 :(得分:0)

已录制了第4声道音频。我通过jni使用tinyalsa。 github.com/tinyalsa/tinyalsa
这样,数据是从/ dev / snd / pcmC1D0c记录的,但是它需要root访问权限或pcmC1D0c的a + rw权限。