我在java中制作了一个简单的游戏,我想在后台添加一首歌,我到处检查,查看guid并没有任何效果,有人可以告诉我该怎么做吗?这是我最接近的:
public static synchronized void playSound(final String url) {
new Thread(new Runnable() {
public void run() {
try {
Clip clip = AudioSystem.getClip();
AudioInputStream inputStream = AudioSystem.getAudioInputStream(
Main.class.getResourceAsStream("res/" + url));
clip.open(inputStream);
clip.start();
} catch (Exception e) {
e.printStackTrace;
System.err.println(e.getMessage());
}
}
}).start();
}
这给了我一个noll指针异常,任何人都可以告诉我如何修复这段代码或编写一个新的代码吗? 堆栈跟踪是:com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream中的java.lang.NullPointerException(SoftMidiAudioFileReader.java:130) 在javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1113) at Frame $ 1.run(Frame.java:59) 在java.lang.Thread.run(Thread.java:745)
(第59行是: AudioInputStream inputStream = AudioSystem.getAudioInputStream(Frame.class.getResourceAsStream(" res /" + url));
答案 0 :(得分:1)
因为你的代码是从这个帖子中复制/粘贴的,所以评论很好 How can I play sound in Java?
该文件必须位于错误的目录中(并且您更改了path/to/sounds
到声音的路径? ;))
答案 1 :(得分:0)
将您要引用的声音片段放在与源代码相同的文件夹中。完成后,将“/ path / to / sounds”替换为声音片段的名称。
我给你的建议是研究相对路径参考的主题。当涉及到诸如此类的情况时,这将极大地帮助您。
此致
裴家