我正在制作录音系统。如何从java中的输入流中创建数组short []
答案 0 :(得分:2)
首先,使用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);
虽然除非你真的需要一个short [],否则我会在运行中使用字节进行处理,以便更加优化。
换句话说,您只需将put()
用于ByteBuffer的短缓冲区表示即可。所以,像:
byte[] bBuffer;
short[] sBuffer; // your buffer containing your byte[] data
yourByteBuffer.asShortBuffer().put(sBuffer);
答案 1 :(得分:1)
嗯......如果您只是想从InputStream中读取并将其存储在byte []变量中,您只需要使用InputStream的read方法:
InputStream inputStream;
byte[] bytes;
...
inputStream.read(bytes);
但是,正如你所说的那样,你正在研究录音系统,我建议你看一下AudioRecord Class。您可以轻松地使用它来录制声音并读取数据。