2

我正在开发一个录音系统。如何从java中的输入流制作数组short []

4

2 回答 2

3

首先,用于InputStream.read(byte[] buffer)将数据存储到字节数组中。然后使用类似这样的东西将其转换为 SHORT[]。

byte[] bBuffer; // your buffer containing your byte[] data
short[] sBuffer;
ByteBuffer.wrap(bBuffer).order(ByteOrder.LITTLE_ENDIAN).asShortBuffer().get(sBuffer);

虽然除非你真的需要一个短 [],否则我会动态使用字节进行处理,因此它更加优化。

换一种方式,您可以只使用ByteBufferput()的短缓冲区表示。所以,像:

byte[] bBuffer;
short[] sBuffer;  // your buffer containing your byte[] data
yourByteBuffer.asShortBuffer().put(sBuffer);
于 2013-05-29T04:02:35.957 回答
0

好吧...如果您只想从 InputStream 中读取并将其存储在 byte[] 变量中,则只需使用 InputStream 的 read 方法:

InputStream inputStream;
byte[] bytes;

...

inputStream.read(bytes);

但是,正如您所说,您正在研究音频记录系统,我建议您查看AudioRecord Class。您可以轻松地使用它来录制声音和读取数据。

于 2013-05-29T04:03:20.120 回答