1

我一直在尝试将ByteArrayOutputStream 转换为 int 值。

我正在用麦克风录制音频并将其写入out = new ByteArrayOutputStream()如下:

out.write(buffer, 0, count);

byte audio[] = out.toByteArray();

当我打印这个时,我得到了这些:[B@3456337e

如何将这些转换为整数。

请帮忙,谢谢

4

3 回答 3

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"

我希望它会帮助你。

于 2014-06-20T09:49:05.000 回答
0

Convert it to an array, wrap the array in a ByteArrayInputStream, wrap that in a DataInputStream, and use readInt().

于 2014-06-20T10:06:17.983 回答
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+" ");
         }
于 2014-06-20T10:20:30.113 回答