我一直在尝试将 ByteArrayOutputStream转换为int值。
我正在录制带麦克风的音频并将其写入out = new ByteArrayOutputStream()
,如下所示:
out.write(buffer, 0, count);
byte audio[] = out.toByteArray();
当我打印出来时,我得到了这些:[B @ 3456337e
如何将这些转换为整数。
请帮助,谢谢
答案 0 :(得分:2)
没有标准的方法可以做到这一点,因为实际上它取决于你拥有的字节类型,但是,因为它是一个音频源,我认为你可以这样做:
IntBuffer intBuf =
ByteBuffer.wrap(byteArray)
.order(ByteOrder.BIG_ENDIAN) //or try ByteOrder.LITTLE_ENDIAN
.asIntBuffer();
int[] array = new int[intBuf.remaining()];
intBuf.get(array);
//The result you want is "array"
我希望它会对你有所帮助。
答案 1 :(得分:0)
将其转换为数组,将数组包装在ByteArrayInputStream
中,将其包装在DataInputStream,
中并使用readInt().
答案 2 :(得分:0)
尝试以下方法 -
ByteArrayOutputStream out = new ByteArrayOutputStream();
DataInputStream dataIs = new DataInputStream
(new ByteArrayInputStream(out.toByteArray());
// available stream to be read
while(dataIs.available()>0)
{
int k = dataIs.readInt();
// print int
System.out.print(k+" ");
}