public static synchronized void playSound(final String url) {
new Thread(new Runnable() {
// The wrapper thread is unnecessary, unless it blocks on the
// Clip finishing; see comments.
public void run() {
try {
Clip clip = AudioSystem.getClip();
AudioInputStream inputStream = AudioSystem.getAudioInputStream(
Main.class.getResourceAsStream("Draco-s-Pong-master\\demo\\Sounds" + url));
clip.open(inputStream);
clip.start();
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
}).start();
playSound("Draco Background.wav");
}
我看过其他线程的几十个代码,他们都给我null并继续发送垃圾邮件,直到我关闭程序。我在Sounds文件夹中有.wav文件,我甚至把它放在项目的任何地方它每次都给我null。我想要它的简单背景。
答案 0 :(得分:1)
将您的音频文件(在您的情况下为声音文件夹)移动到您的类文件夹,然后只需使用更新的路径调用它。如
char (&)[N]
修改强>
仅使用音频文件的绝对路径。不要使用整个Main.class.getResourceAsStream("*PUT YOUR CLASS PATHNAME*\\Sounds" + url))
并使用
Main.class.getResourceAsStream
现在您将了解问题是否与提供运行时异常的文件有关。否则它就在别的地方。