我正在制作一个程序,我希望它在打开时开始播放声音。我想最简单的方法是将.wav文件嵌入jar的src文件夹中。我已将该文件放在称为files
的打包文件中,而我正在使用的所有其他文件(例如图片)都在该文件包中,并且它们都可以正常工作。我的播放声音的方法是在这里:
public static void playSound(String dir, int loopTimes) throws Exception {
URL url = new File(dir).toURI().toURL();
Clip clip = AudioSystem.getClip();
// getAudioInputStream() also accepts a File or InputStream
AudioInputStream ais = AudioSystem.getAudioInputStream(url);
clip.open(ais);
if (loopTimes == -1)
loopTimes = Clip.LOOP_CONTINUOUSLY;
clip.loop(loopTimes);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
}
});
}
它可以在桌面,文档或其他任何位置播放声音。我输入的用于播放声音的路径是
"files/FBP.wav"
,而FBP是文件名。我无法在Google上找到任何解决方案,而且我感觉是因为它在JAR中。我也只是简单地尝试了这个:if(new File("files/FBP.wav").exists()){
System.out.println("EXISTS!");
}
System.exit(0);
并且从不打印出它的存在。我确保它也在bin文件夹中。我正在使用 eclipse 。我得到的错误是
filenotfoundexception
。任何帮助表示赞赏!提前致谢! 最佳答案
更换:
URL url = new File(dir).toURI().toURL();
带有:
URL url = MySoundClassName.class.getClassLoader().getResource(dir);
或对于非静态方法:
URL url = getClass().getClassLoader().getResource(dir);