我正在使用 Java 开发 2D 游戏,当我从可执行 Jar 文件运行游戏时,游戏的声音会在播放几毫秒后被切断。当我从 Eclipse 运行游戏时,声音播放正确。
我像这样加载声音文件(.wav):
AudioInputStream ais = AudioSystem.getAudioInputStream(this.getClass().getResource("sounds/sound.wav"));
AudioFormat af = ais.getFormat();
int size = (int) (af.getFrameSize() * ais.getFrameLength());
byte[] audio = new byte[size];
DataLine.Info info = new DataLine.Info(Clip.class, af, size);
ais.read(audio, 0, size);
sound= (Clip) AudioSystem.getLine(info);
sound.open(af, audio, 0, size);
我稍后在游戏中播放声音,如下所示:
public void playClip(final Clip clip, final int loop){
Runnable soundPlayer = new Runnable() {
Clip sound = clip;
@Override
public void run() {
try {
sound.setMicrosecondPosition(0);
sound.loop(loop);
} catch (Exception e) {
e.printStackTrace();
}
}
};
new Thread(soundPlayer).start();
}
你知道程序为什么会这样以及如何解决这个问题吗?在此先感谢您的帮助!