在将其编译为JAR后,在Java中播放wav文件

时间:2017-06-07 13:36:13

标签: java audio intellij-idea jar wav

所以我正在为我的程序员朋友做生日礼物。我对代码不是那么好,但是我做了一个窗口+ gif +声音。但是一旦我在另一台PC上测试它,声音就不再有效,但是JAR文件足够大,可以包含WAV。请帮帮我,我真的很想做个好生日礼物。这是声音代码+主要

 public static void play() {
    try {

        File file = new File("C:/Users/timma/IdeaProjects/BirthdayAshley/1" + ".wav");
        Clip clip = AudioSystem.getClip();
        clip.open(AudioSystem.getAudioInputStream(file));
        clip.start();
        Thread.sleep(clip.getMicrosecondLength());

    } catch (Exception e) {
        System.err.println(e.getMessage());
    }
}

public static void main(String[] args){
    JFrame jf = new JFrame ("Happy Birthday");
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jf.setSize(617,345);
    jf.add(new Birthday());
    jf.setVisible(true);
    jf.setResizable(false);
    play();

}

2 个答案:

答案 0 :(得分:1)

如果WAV在JAR中,则无法通过文件引用。 但您可以通过Class.getResourceAsStream()打开它。其他一切都应该保持不变。

InputStream stream =
    SomeClassInTheSameJar.class.getResourceAsStream("/BirthdayAshley/1.wav");

答案 1 :(得分:0)

使用<MyClass>.class().getAsStream("/1.wav")加载文件。所以它会从你的罐子里加载而不是一个不存在的绝对路径。

clip.open(AudioSystem.getAudioInputStream(<MyClass>.class.getAsStream("/1.wav")));