Java 音乐赢得';不能在.jar文件中播放
我在这里查阅了很多关于这个问题的话题,但其中任何一个都不能解决我的问题。 我有这个方法Java 音乐赢得';不能在.jar文件中播放,java,Java,我在这里查阅了很多关于这个问题的话题,但其中任何一个都不能解决我的问题。 我有这个方法 String filepath = "resources/pacmanMusic.wav"; URL musicLocation = getClass().getResource(filepath); //String musicPath = filepath.toString(); public void playMusic(String musicLocation) { if
String filepath = "resources/pacmanMusic.wav";
URL musicLocation = getClass().getResource(filepath);
//String musicPath = filepath.toString();
public void playMusic(String musicLocation) {
if (play) {
try {
AudioInputStream inputStream = AudioSystem.getAudioInputStream(new File(musicLocation));
File musicPath = new File(musicLocation);
inputStream = AudioSystem.getAudioInputStream(musicPath);
clip = AudioSystem.getClip();
System.out.println(musicLocation);
clip.open(inputStream);
clip.loop(Clip.LOOP_CONTINUOUSLY);
clip.start();
} catch (Exception ex) {
ex.printStackTrace();
}
}else {
clip.stop();
}
System.out.println(play);
}
但我不知道,如果音乐在eclipse中播放,为什么它不能在.jar中播放。从其他的“主题”中,我总是会遇到一些错误,比如文件为空或类似的错误。
这就是我如何调用上面的方法playMusic(filepath)代码>
我做错了什么?谢谢试试这个:
InputStream文件InputStream=YourAwesomeClass.class.getResourceAsStream(“yourFile.mp3”);
AudioInputStream AudioInputStream=AudioSystem.getAudioInputStream(fileInputStream);
据我所知,您的.mp3
应该保存在resources文件夹中。创建jar时,文件路径被转换为“jar路径”,处理得不太好。这就是为什么使用InputStream
是个好主意。运行代码时是否出现异常?不,一切正常如果不想从磁盘运行mp3,则应指定该文件的绝对路径。目前,您只能播放jar文件的resources/
文件夹中的文件