声音片段在罐子里被切掉了

时间:2013-09-23 23:19:43

标签: java eclipse audio executable-jar

我正在研究Java中的2D游戏,并且遇到的问题是,当我从可执行的Jar文件中运行游戏后,游戏的声音会在播放几毫秒后被切断。 当我从日食运行游戏时,声音播放正确。

我加载声音文件(.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();
}

你知道为什么程序会像这样,以及如何解决这个问题? 在此先感谢您的帮助!

0 个答案:

没有答案