我一直在尝试将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"


希望对您有帮助。

09-29 19:56