我一直在尝试在我的java项目中播放.wav文件,我让它工作......或者我认为。当我将它导出到可执行jar文件时,除非它们与jar文件位于同一目录中,否则声音将无法播放。我希望它加载jar文件内部的声音。 这是我现在正在使用的代码:
void PlaySound(String filename) {
try (InputStream in = getClass().getResourceAsStream(filename)) {
try (AudioInputStream audioIn = AudioSystem.getAudioInputStream(in)) {
Clip clip = AudioSystem.getClip();
clip.open(audioIn);
clip.start();
}
} catch (Exception e) {
e.printStackTrace();
}
}
答案 0 :(得分:3)
我需要将其更改为:
void PlaySound(String filename) {
try (InputStream in = getClass().getResourceAsStream(filename)) {
InputStream bufferedIn = new BufferedInputStream(in);
try (AudioInputStream audioIn = AudioSystem.getAudioInputStream(bufferedIn)) {
Clip clip = AudioSystem.getClip();
clip.open(audioIn);
clip.start();
}
} catch (Exception e) {
e.printStackTrace();
}
}
但我实际上从这里得到了这个解决方案: java.io.IOException: mark/reset not supported