目录
一、错误代码展示
1.代码架构
2.Ajava代码
public class Ajava {
public static void main(String[] args) throws Exception {
Ajava a = new Ajava();
Clip clip = AudioSystem.getClip();
ClassLoader cl = a.getClass().getClassLoader();//得到类加载器
InputStream in = cl.getResourceAsStream("bgm.wav");//加载音乐
System.out.println(cl);
System.out.println(in);
AudioInputStream ais = AudioSystem.getAudioInputStream(in);
clip.open(ais);//打开这个文件
while (true)
clip.loop(Clip.LOOP_CONTINUOUSLY);//播放音乐需要用while()来一直播放
}
}
二、IDEA报错显示
Exception in thread "main" java.lang.NullPointerException
at com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream(SoftMidiAudioFileReader.java:134)
at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1113)
at main.java.Ajava.main(Ajava.java:21)
从第一行可以看到错误类型为空指针异常。
三、错误的原因
1.路径错误
getResourceAsStream()里填写的相对路径错误,其实这个原因大部分人都不会犯,因为大部分都是看着视频做的游戏,不太可能把相对路径填错。
2.IDEA Source资源目录没有设置
(1)设置资源目录的前后对比
如果没有把你将要播放音乐的所在目录设置成资源根目录
如下图
将resource设置成资源根目录后
(2)设置资源目录的方法
IDEA设置资源根目录·
设置好之后就能正常播放音乐了。
如果有哥们遇到的问题一样并且用这种方法解决了那还请兄弟给我点个赞,谢谢。