所以我正在为我的程序员朋友做生日礼物。我对代码不是那么好,但是我做了一个窗口+ 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();
}
答案 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")));