首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java.io.IOException:不支持标记/重置

java.io.IOException:不支持标记/重置
EN

Stack Overflow用户
提问于 2011-04-03 21:06:22
回答 2查看 65.8K关注 0票数 78
代码语言:javascript
复制
try {
    //String location = dir1.getCanonicalPath()+"\\app_yamb_test1\\mySound.au";
    //displayMessage(location);
    AudioInputStream audio2 = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("mySound.au"));
    Clip clip2 = AudioSystem.getClip();
    clip2.open(audio2);
    clip2.start();
} catch (UnsupportedAudioFileException uae) {
    System.out.println(uae);
    JOptionPane.showMessageDialog(null, uae.toString());
} catch (IOException ioe) {
    System.out.println("Couldn't find it");
    JOptionPane.showMessageDialog(null, ioe.toString());
} catch (LineUnavailableException lua) {
    System.out.println(lua);
    JOptionPane.showMessageDialog(null, lua.toString());
}

当我从netbeans运行应用程序时,这段代码运行良好。声音会播放,没有例外。但是,当我从dist文件夹运行它时,声音不会播放,并且我在消息对话框中得到java.io.IOException: mark/reset not supported

我该如何解决这个问题呢?

EN

回答 2

Stack Overflow用户

发布于 2012-02-17 15:02:51

这个问题是从其他有同样问题的人那里遇到的,他引用了这个问题。

Oracle Bug数据库,#7095006

使用以下代码来避免InputStream步骤。是InputStream导致了这个错误。

代码语言:javascript
复制
URL url = AudioMixer.class.getResource(fileName); 
AudioInputStream ais =  AudioSystem.getAudioInputStream(url); 

瞧--没有InputStream

mark/reset exception during getAudioInputStream()

票数 4
EN

Stack Overflow用户

发布于 2011-04-03 21:10:30

问题是你的输入流必须支持方法mark和reset。至少如果支持mark,你可以使用:AudioInputStream#markSupported进行测试。

因此,您可能应该使用不同的InputStream。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5529754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档