Java捕获声音实时

时间:2013-12-30 15:54:44

标签: java audio capture

我使用 TargetDataLine

实时捕捉歌曲
line.read(buffer, 0, buffer.length);

但是这个缓冲区必须是字节数组。我需要捕获缓冲区,这是长数组或浮点数组。我尝试从byte转换为long或float,但这些数据不正确。

如何使用其他类型或隐藏字节以正确的方式捕获浮点数/长度?

1 个答案:

答案 0 :(得分:0)

您可以尝试这种方法:

byte[] buffer = new byte[2048];
float[] fBuffer = new float[buffer.length >> 2];

ByteBuffer bb = ByteBuffer.wrap(buffer);
FloatBuffer fb = bb.asFloatBuffer();
fb.get(fBuffer, 0, fBuffer.length);

这为你做了转换。