1

我正在尝试使用Java Sound APIInputStream将包含数据从 MP3 文件转换为。AudioInputStream

Exception但是,当我尝试这样做时,我一直遇到一个。

这是导致问题的方法:

public static int[][] getAmpFromInputStream(InputStream is) throws Exception{
    BufferedInputStream bs = new BufferedInputStream(is);
    AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(bs);
    byte[] bytes = new byte[(int) (audioInputStream.getFrameLength()) * (audioInputStream.getFormat().getFrameSize())];
    audioInputStream.read(bytes);

    // Get amplitude values for each audio channel in an array.
    return getUnscaledAmplitude(bytes, 1);
}

抛出的Exception是:

javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input stream
    at javax.sound.sampled.AudioSystem.getAudioInputStream(Unknown Source)
    at PitchChanger.getAmpFromInputStream(PitchChanger.java:27)
    at GUI$PlayMP3Thread.silly(GUI.java:128)
    at GUI$PlayMP3Thread.run(GUI.java:115)
    at java.lang.Thread.run(Unknown Source)

然而,这让我感到困惑,因为我用它InputStream来玩Javazoom.jl.player.Player,它在那里工作得很好。

那么为什么不能InputStream转换成一个AudioInputStream

Java Sound 不支持 MP3 文件格式吗?

4

1 回答 1

0

当 AudioSystem 必须提供 RAW 数据(WAV 格式的原始样本)时,Javazoom 支持 MP3(具有解码器)。

于 2013-08-08T17:34:51.763 回答