gpt4 book ai didi

java - AudioSystem.getInputStream(InputStream) 异常

转载 作者:行者123 更新时间:2023-12-01 04:29:24 24 4
gpt4 key购买 nike

我正在尝试使用 Java Sound API 将包含 MP3 文件数据的 InputStream 转换为 AudioInputStream

但是,当我尝试这样做时,我不断遇到异常

以下是导致问题的方法:

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

抛出的异常是:

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 文件格式吗?

最佳答案

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

关于java - AudioSystem.getInputStream(InputStream) 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18132188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com