浅谈AudioRecord对多通道音频的支持

麦克风阵列是近几年来比较火的技术,顾名思义,就是音源输入由原来的单一麦克风变成多路麦克风。在实际的项目中需要在Android系统中通过AudioRecord接口获取4路麦克风录音数据。

设备端是一个声明成UAC设备的多麦克风录音设备,具体参数是4channel,16K,16bit,但AudioRecord的接口关于通道的参数只有单声道和立体声,不支持多通道录音。这里做了一个变通,通过提高采样率来获取4通道的数据。

4channel,16K,16bit的数据量就相当于64K,单声道,16bit,也等同于32K,立体声,16bit,通过查看AudioRecord源码,发现该函数内部对采样率大小有限制,具体要求是小于48000,所以使用32K,立体声,16bit来代替。经过实测可以正常获取4路音频。

可以推断,AudioRecord能支持到的最大通道数和采样率为48K,立体声,16bit,相当于96K,16bit,也就是如果是采样率是16bit,可以最大支持6个通道,16K的数据量。

你可能感兴趣的:(Android开发)