将ByteArrayOutputStream转换为int值

时间:2014-06-20 09:38:52

标签: java android bytearrayoutputstream

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

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

out.write(buffer, 0, count);

byte audio[] = out.toByteArray();

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

如何将这些转换为整数。

请帮助,谢谢

3 个答案:

答案 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+" ");
         }