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.youkuaiyun.com/u013630349/article/details/78064641
如果播放不了声音,把音频改成wav格式