Salvando o byte de áudio [] em um arquivo wav

Está tendo um pouco de dificuldade nos últimos dias tentando fazer com que isso funcione. Mas o que eu quero é que tenhamos um aplicativo que envie dados brutos pela rede. Eu então leio esses dados binários e quero salvá-los em um arquivo wav (qualquer áudio). Pode olhar para a compressão mais tarde.

Então o código problemático:

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);                

Tentei usar a declaração acima também, mas recebo a exceção:javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from stream. Então, o que eu acho que está acontecendo é que, como meu fluxo é um dado de áudio bruto e não tem um cabeçalho de onda, isso gera uma exceção?

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);

O arquivo é gravado com sucesso, mas é tudo estático. Preciso criar um cabeçalho de onda na saída usando algo comoisto. Quando eu olho para o arquivo wav emitido no notepad e ele parece ter um cabeçalho quando ele começa com 'RIFF'.

Preciso adicionar um cabeçalho falso ao meu fluxo de entrada? Devo apenas criar meu próprio cabeçalho de saída e salvá-lo apenas com um gravador binário?

questionAnswers(3)

yourAnswerToTheQuestion