我一直在尝试将ByteArrayOutputStream 转换为 int 值。
我正在用麦克风录制音频并将其写入out = new ByteArrayOutputStream()
如下:
out.write(buffer, 0, count);
byte audio[] = out.toByteArray();
当我打印这个时,我得到了这些:[B@3456337e
如何将这些转换为整数。
请帮忙,谢谢
我一直在尝试将ByteArrayOutputStream 转换为 int 值。
我正在用麦克风录制音频并将其写入out = new ByteArrayOutputStream()
如下:
out.write(buffer, 0, count);
byte audio[] = out.toByteArray();
当我打印这个时,我得到了这些:[B@3456337e
如何将这些转换为整数。
请帮忙,谢谢
没有标准的方法来做到这一点,因为它实际上取决于你拥有什么样的字节,但是,因为它是一个音频源,我认为你可以这样做:
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"
我希望它会帮助你。
Convert it to an array, wrap the array in a ByteArrayInputStream
, wrap that in a DataInputStream,
and use readInt().
尝试以下 -
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+" ");
}