java - 将Java编译为JAR文件后播放WAV文件

标签 java audio intellij-idea jar wav

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

}

最佳答案

如果WAV在JAR内,则无法通过文件进行引用。
但是您可以通过 Class.getResourceAsStream() 打开它。其他所有内容都应保持不变。

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

关于java - 将Java编译为JAR文件后播放WAV文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44414268/

相关文章:

Java,将数据库连接传递到不同的类中。

c# - 如何在Tizen Xamarin上播放声音

java - Spring-boot部署错误: java. lang.IllegalStateException:无法获取嵌套存档

java - 当我使用 @RequiredArgsConstructor 时,变量可能尚未初始化

java - IntelliJ IDEA 在里面运行东西时使用了错误的 $JAVA_HOME,我无法更改它

java - 关于合并算法的问题

java - Java Eclipse 中的 Serializer() 方法 "constructor serializer() is not defined"

java - 如何制作包含列表的java hashmap?

android - 使用SmartFace.io进行音频录制(Android-Ios)

ios - Sprite Kit & 播放声音导致应用程序终止