0

发送 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(尝试了不同的频率、频道……),但我听到的只是静态的。

4

1 回答 1

0

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

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

字节[] 响应 = 方法.getResponseBody();

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

于 2019-01-04T10:42:20.277 回答