无法在 jarfile 中播放声音

Can't play sounds inside a jarfile

我在播放 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 文件的 class:

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

但是这段代码甚至无法在编辑器中播放.. 即使我将它导出到 jar 文件,我也需要使声音正常工作。

有什么简单的解决方法吗?

您不能像您尝试的那样简单地播放文件,您需要使用您正在使用的 class 的 getResource 方法。例如,试试这个代码

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