gpt4 book ai didi

Java Exception 从 Resource .wav 中读取流

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:31:55 25 4
gpt4 key购买 nike

我想我的代码没问题,我的 .jar 文件也没有问题,里面有 .wav..但是,当我尝试使用 getResourceAsStream 加载它时,出现错误。

这是我的错误:

java.io.IOException: mark/reset not supported
at java.util.zip.InflaterInputStream.reset(Unknown Source)
at java.io.FilterInputStream.reset(Unknown Source)
at com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream(Unkno
wn Source)
at javax.sound.sampled.AudioSystem.getAudioInputStream(Unknown Source)
at operation.MainWindowOperations.prepareAudio(MainWindowOperations.java
:92)
at operation.MainWindowOperations.<init>(MainWindowOperations.java:81)
at graphics.LaunchGraphics.<init>(LaunchGraphics.java:25)
at run.RunApp.main(RunApp.java:14)

这是我的代码:

private void prepareAudio() {
try {

InputStream is = this.getClass().getClassLoader().getResourceAsStream("beep.wav");
inputStream = AudioSystem.getAudioInputStream(is);
clip = AudioSystem.getClip();
clip.open(inputStream);

} catch (Exception ex) {
ex.printStackTrace();

}

}

有人可以帮助我吗?提前致谢!!

最佳答案

Java Sound 的某些操作需要可重新定位(支持标记/重置)的输入流。如果您遇到此问题,那是因为流不可重新定位。

绕过它的一种方法是将原始流的 byte[] 放入支持标记/重置的 ByteArrayInputStream


Eric R. 链接的问题的第二个答案也是一种可能性,而且看起来更简单。尝试一下,改变..

InputStream is = this.getClass().getClassLoader().getResourceAsStream("beep.wav");
inputStream = AudioSystem.getAudioInputStream(is);

收件人:

URL url = this.getClass().getClassLoader().getResource("beep.wav");
inputStream = AudioSystem.getAudioInputStream(url);

关于Java Exception 从 Resource .wav 中读取流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9659842/

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