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
。
我该如何解决这个问题呢?
发布于 2012-02-17 15:02:51
这个问题是从其他有同样问题的人那里遇到的,他引用了这个问题。
Oracle Bug数据库,#7095006
使用以下代码来避免InputStream步骤。是InputStream导致了这个错误。
URL url = AudioMixer.class.getResource(fileName);
AudioInputStream ais = AudioSystem.getAudioInputStream(url);
瞧--没有InputStream
发布于 2011-04-03 21:10:30
问题是你的输入流必须支持方法mark和reset。至少如果支持mark,你可以使用:AudioInputStream#markSupported进行测试。
因此,您可能应该使用不同的InputStream。
https://stackoverflow.com/questions/5529754
复制相似问题