这里计算的是以16bit,8个channel分离数据
/**
* 16000HZ,16bit,8channel
*
* @param data
* @param channelNum
* @return
*/
private static byte[] detachChannel(byte[] data, int channelNum) {
if (data == null || channelNum < 0 || channelNum > 7) {
return null;
}
if (data.length <= 0) {
return null;
}
byte[] localData = Arrays.copyOf(data, data.length);
byte[] channelData = new byte[localData.length / 8];//每个通道的数据是原数据的八分之一
int j = 0;
for (int i = 0; i < localData.length; ) {
channelData[j++] = localData[i + 2 * channelNum];//取一个字节
channelData[j++] = localData[i + 2 * channelNum + 1];//取另外一个字节
i = i + 16;
}
return channelData;
}