以下是在网上找到的,不知道有没有这个原因:
在android开发中,在使用AudioRecord进行音频采集时, 如果把采样大小设置成8bit,在初始化得到最小buf时会报错,这是因为底层代码只支持小端,但是android输出是大端,所有需要转换成小端
for (int i = 0; (offset + i + 1) < bytes.length; i += 2) {
lens[i] = bytes[offset + i + 1];
lens[i + 1] = bytes[offset + i];
}
for (int i = 1, j = 0; i < length; i += 2, j++) {
lens[j] = lens[i];
}
Here is a simpler version without endian
for (int i = 0, j = 0; (offset + i) < bytes.length; i += 2, j++) {
lens[j] = bytes[offset + i];
}
_______________________________________________________________________________________________
文档上说的是8bit有些机器不支持!