【问题标题】:Playing a wav file in Java after compiling it to JAR将其编译为 JAR 后在 Java 中播放 wav 文件
【发布时间】:2017-11-08 21:39:35
【问题描述】:

所以我要为我的一个程序员朋友做生日礼物。我的代码不太好,但我做了一个窗口+ 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();

}

【问题讨论】:

    标签: java audio intellij-idea jar wav


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      使用<MyClass>.class().getAsStream("/1.wav") 加载文件。因此,它将从您的 jar 中加载,而不是使用不存在的绝对路径。

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

      【讨论】:

        猜你喜欢
        • 2012-01-15
        • 2013-03-17
        • 1970-01-01
        • 2010-11-19
        • 2015-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-23
        相关资源
        最近更新 更多