java.lang.NullPointerException at sun.applet.AppletAudioClip.(Unknown Source)

private AudioClip a1, a2;
//——————分割线——————
a1=Applet.newAudioClip(this.getClass().getResource("响声.wav"));
a2=Applet.newAudioClip(this.getClass().getResource("背景音乐.wav"));

敲上面的一段代码时出现了如下的问题

	java.lang.NullPointerException
	at sun.applet.AppletAudioClip.<init>(Unknown Source)
	at java.applet.Applet.newAudioClip(Unknown Source)
	at DDS.<init>(DDS.java:264)
	at DDS$1.run(DDS.java:55)

上一次运行的时候这段代码是没有问题的,但是这一次出现了这样的错误提示。于是四处搜索了一下,应该是相对路径出了问题
于是把本来放在项目文件夹里的audio文件夹下的两个wav文件放到了bin文件夹下(和类文件(*.class)放在同一个目录下)
修改代码如下,解决

a1 = Applet.newAudioClip(this.getClass().getResource("响声.wav"));
a2 = Applet.newAudioClip(this.getClass().getResource("背景音乐.wav"));
//不明原因不建议连同audio文件夹一起放在bin下
//a2 = Applet.newAudioClip(this.getClass().getResource("audio/背景音乐.wav"));  x

path不以’/'开头时,默认是从此类所在的包下取资源;
path 以’/'开头时,则是从ClassPath根下获取;
上面说到的【path以’/'开头时,则是从ClassPath根下获取;】在这里就是相当于bin目录(Eclipse环境下)。
参考链接:https://blog.csdn.net/u013630349/article/details/78064641
如果播放不了声音,把音频改成wav格式

你可能感兴趣的:(java.lang.NullPointerException at sun.applet.AppletAudioClip.(Unknown Source))