将字节数组转换为Wav文件

时间:2010-11-09 12:28:48

标签: java audio

经过对该主题的广泛研究,我已经到了一堵砖墙。

我想要做的就是将一个.wav文件集合一个接一个地添加到一个字节数组中,并将它们全部输出到一个完整的新创建的.wav文件中。我将所有.wav数据提取到一个字节数组中,跳过.wav标题并直接获取数据,然后当它将它写入新创建的.wav文件时,我收到如下错误: Error1:javax.sound.sampled.UnsupportedAudioFileException:无法从输入流中获取音频输入流 Error2:无法从输入流

获取音频输入流

代码是:

    try
    {
    String path = "*********";
    String path2 = path + "newFile.wav";

    File filePath = new File(path);
    File NewfilePath = new File(path2);

    String [] folderContent = filePath.list();

    int FileSize =  0;

    for(int i = 0; i < folderContent.length; i++)
        {
            RandomAccessFile raf = new RandomAccessFile(path + folderContent[i], "r");
            FileSize = FileSize + (int)raf.length();

        }

    byte[] FileBytes = new byte[FileSize];

    for(int i = 0; i < folderContent.length; i++)
        {
            RandomAccessFile raf = new RandomAccessFile(path + folderContent[i], "r");
            raf.skipBytes(44);
            raf.read(FileBytes);
            raf.close();

        }

    boolean success = NewfilePath.createNewFile();

    InputStream byteArray = new ByteArrayInputStream(FileBytes);

    AudioInputStream ais = AudioSystem.getAudioInputStream(byteArray);

    AudioSystem.write(ais, Type.WAVE, NewfilePath);

    }

1 个答案:

答案 0 :(得分:-1)

您的字节数组不包含任何标头信息,这可能意味着AutoSystem.write认为它不是真正的WAV数据。

您可以为合并数据创建合适的标题吗?

更新:This问题可能会为您解答。