有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中mp3到wav的音频转换

我正在编写一个通用实用程序,用于将音频文件转换为WAV。WAV到WAV都可以(我也在更改一些属性),但我不能转换MP3文件。我的类路径中有mp3spi,所以它似乎能够读取MP3,但写入的WAV文件似乎不起作用

在这个例子中,我没有试图改变任何属性。只需读取MP3并写入WAV文件

我的代码看起来像这样

    File inputFileObj = new File(input);
    AudioInputStream audioInputStream = null;

    try {
        audioInputStream = AudioSystem.getAudioInputStream(inputFileObj);
    } catch (Exception e) {
        e.printStackTrace();
    }

    System.out.println("Input file format:");
    System.out.println(AudioSystem.getAudioFileFormat(inputFileObj));

    try {
        AudioSystem.write(audioInputStream, outputType, new File(output));
    } catch (Exception e) {
        e.printStackTrace();
    }

    System.out.println("Output file format:");
    System.out.println(AudioSystem.getAudioFileFormat(new File(output)));

这是输出。如您所见,它似乎编写了输出文件,但当我试图检索输出文件的格式时,它无法处理它。如果我尝试播放输出文件,播放器就不会识别它

Input file: c:\testfiles\sample-b-converted.mp3
Output file: c:\testfiles\foo.wav
Output type: wav

Input file format:
MP3 (.mp3) file, byte length: 13227300, data format: MPEG2L3 16000.0 Hz, unknown bits per sample, mono, unknown frame size, 27.777779 frames/second, , frame length: 122475
Bytes written: 13227344
Output file format:
Exception in thread "main" javax.sound.sampled.UnsupportedAudioFileException: file is not a supported file type
    at javax.sound.sampled.AudioSystem.getAudioFileFormat(AudioSystem.java:1078)
    at org.torchai.AudioFileConvert01.main(AudioFileConvert01.java:60)

我还需要别的什么东西来让它工作吗


共 (1) 个答案

  1. # 1 楼答案

    有人发了一条评论,说我是mp3 to wav conversion in java。我见过这个问题,但不太明白答案的主要方面,因为它没有得到很好的解释

    MP3文件显然需要经过两步转换。我不完全明白为什么,但似乎你必须首先将其转换为PCM#U签名,样本大小为16,帧大小为2*个通道。此时,您可以再次将其转换为所需的最终格式

    我仍然希望有更好的解释,但这至少让我克服了我的问题