我想将字节数组转换为AudioInputStream。字节数组是从* .wav文件填充的。我有以下代码:

    public static AudioInputStream writeBytesBackToStream(byte[] bytes) {
    ByteArrayInputStream baiut = new ByteArrayInputStream(bytes);
    AudioInputStream stream = null;
    try {
        stream = AudioSystem.getAudioInputStream(baiut);
    } catch (UnsupportedAudioFileException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    if(stream.equals(null) || stream == null) {
        System.out.println("WARNING: Stream read by byte array is null!");
    }
    return stream;
}


现在,我只想将此字节数组转换为AudioInputStream,但会引发UnsupportedAudioFileException:

javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from    input stream


有人知道吗?

最佳答案

如果您正确读取WAV文件,则字节数组将仅包含原始PCM数据。因此,AudioSystem无法识别流的格式并引发异常。

这不能设计使然。您需要在流中提供完整的音频格式图像,以使AudioSystem识别流是什么格式,而不仅仅是原始数据。

关于java - 如何在Java中将字节数组转换为AudioInputStream,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17060346/

10-10 02:20