Извлечь WAV-файл из массива байтов - PullRequest
0 голосов
/ 03 января 2019

После отправки запроса 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 голосов
/ 04 января 2019

Как сказал VGR (большое спасибо!), Проблема заключалась в том, как клиент Rest преобразовывал байты в строку.

Используя Apache HttpClient, я смог правильно получить ответные байты.

byte [] response = method.getResponseBody ();

FileUtils.writeByteArrayToFile (новый файл («C: /Users/user/Desktop/temp.wav»), ответ);

...