运行 JAR 时不会播放声音,但在 eclipse 中运行时会播放。
这是我加载剪辑的地方:(文件是从 jar 的目录加载的,而不是从 jar 中加载的)
public void init(){
System.out.println("grabbing Music");
String currentDir = new File("").getAbsolutePath();
name=new File(currentDir+"\\music\\").list();
clip=new Clip[name.length];
soundFile=new File[name.length];
for(int x=0;x<name.length;x++){
System.out.println(currentDir+"\\music\\"+name[x]);
try {
soundFile[x]= new File(currentDir+"\\music\\"+name[x]);
AudioInputStream sound = AudioSystem.getAudioInputStream(soundFile[x]);
DataLine.Info info= new DataLine.Info(Clip.class, sound.getFormat());
clip[x] = (Clip) AudioSystem.getLine(info);
clip[x].open(sound);
clip[x].addLineListener(new LineListener(){
public void update(LineEvent event) {
if (event.getType() == LineEvent.Type.STOP) {
event.getLine().close();
}
}
});
} catch (LineUnavailableException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (UnsupportedAudioFileException e) {
e.printStackTrace();
}
}
}
在 Eclipse 中运行它时我没有收到任何错误。应该不存在无效目录错误的可能性,那么到底出了什么问题呢?
- 当 jar 在 CMD 中运行时,我没有收到任何错误或堆栈跟踪,因此它正在加载文件,只是在调用 clip.start() 时没有运行它。所以我加载文件的方式与可运行的 jar 不兼容。
编辑:我觉得我加载音频错误,因此我粘贴了我用来加载文件的代码。在我的搜索中,我没有看到有人使用 File 加载声音文件。想知道这是不是问题?
- 也切换到嵌入式资源也不起作用。