从字节数组中提取WAV文件

时间:2019-01-03 14:52:05

标签: java file audio wav riff

在发送REST请求之后,服务器将带回一个很长的字符串,如下所示:

RIFF\nt WAVEfmt ...(a lot of extra characters)

这应该是一个.wav文件。 从那里,我得到了一个使用Java的字节数组:

byte[] audio = restResponse.getResponseBody().getBytes();

哪个返回如下:

[82, 73, 70, 70, 10, 116, 32, 0, 87, 65, 86, 69, 102, 109, 116, 32, 18...

之后,我将该数组写入文件:

FileUtils.writeByteArrayToFile(new File("C:/Users/user/Desktop/temp.wav"), audio);

问题是,我尝试了2-3个音频播放器+将原始数据导入Audacity(尝试了不同的频率,频道...),但是我听到的都是静态的。

1 个答案:

答案 0 :(得分:0)

正如VGR所说(非常感谢!),问题在于Rest客户端将字节转换为String的方式。

通过使用Apache的HttpClient,我能够正确获取响应字节。

  

byte []响应= method.getResponseBody();

     

FileUtils.writeByteArrayToFile(new File(“ C:/Users/user/Desktop/temp.wav”),响应);