Сохранение аудио байта [] в файл WAV

В последние несколько дней были проблемы с попытками заставить это работать. Но я хочу, чтобы у нас было приложение, которое отправляет необработанные данные по сети. Затем я читаю эти двоичные данные и хочу сохранить их в файл wav (любой аудио). Могу посмотреть на сжатие позже.

Итак, проблемный код:

byte[] allBytes = ...
InputStream b_in = new ByteArrayInputStream(allBytes);

try
{
     AudioFormat format = new AudioFormat(8000f, 16, 1, true, true);
     AudioInputStream stream = new AudioInputStream(b_in, format, allBytes.length);
     //AudioInputStream stream = AudioSystem.getAudioInputStream(b_in);                

Я тоже пытался использовать вышеприведенное утверждение, но я получаю исключение:javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from stream, Так что я думаю, что из-за того, что мой поток представляет собой необработанные аудиоданные и не имеет волнового заголовка, это исключение?

File newPath = new File(SystemConfiguration.getLatest().voiceNetworkPathDirectory + currentPhoneCall.fileName);
if (!AudioSystem.isFileTypeSupported(Type.WAVE, stream))
{
    Logger.error("Audio System file type not supported");
}

AudioSystem.write(stream, Type.WAVE, newPath);

Файл успешно записывается, но все статично. Нужно ли создавать волновой заголовок на выходе, используя что-то вродеэтот, Когда я смотрю на выведенный wav-файл в блокноте, кажется, что он имеет заголовок, который начинается с «RIFF».

Нужно ли добавлять поддельный заголовок в мой поток ввода? Должен ли я просто создать свой собственный выходной заголовок и просто сохранить его с двоичным писателем?

Ответы на вопрос(3)

Ваш ответ на вопрос