无法在jarfile

时间:2015-06-17 21:25:24

标签: java embedded-resource javasound

我在播放jar文件中的声音时出现问题。 这是我播放声音的代码:

    public class Sounds {

    public static void playClickSound() {
        try {
            Clip clip = AudioSystem.getClip();
            clip.open(AudioSystem.getAudioInputStream(new File("resources/sounds/click.wav")));
            clip.start();
        } catch (Exception exc) {
            exc.printStackTrace(System.out);
        }
    }

    public static void playBuySound() {
        try {
            Clip clip = AudioSystem.getClip();
            clip.open(AudioSystem.getAudioInputStream(new File("resources/sounds/buy.wav")));
            clip.start();
        } catch (Exception exc) {
            exc.printStackTrace(System.out);
        }
    }
}

使用Sounds.class文件的其他类:

//other stuff..
    Sounds.playBuySound();
//another stuff..

但是这段代码甚至不能在编辑器中播放它。 即使我将它导出到jar文件,我也需要使声音有效。

有没有简单的解决方案?

1 个答案:

答案 0 :(得分:1)

您无法像您尝试的那样简单地播放文件,您需要使用您正在使用的类的getResource方法。例如,尝试此代码

AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(Sounds.class.getResource("/resources/sounds/click.wav"));
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
clip.start();