【发布时间】:2013-01-17 08:58:44
【问题描述】:
我正在创建一个名为 BatteryBeeper 的个人使用软件。当充电是我设置的提醒时,它会提醒我给笔记本电脑充电。
当电量达到设定的阈值时,它应该会播放声音。
我看了答案:sound not playing in jar 和我的AudioInputStream 的构造类似于 Jigar Joshi 提到的。
但是我得到一个空异常:
java.lang.NullPointerException
at com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream(Unknown Source)
at javax.sound.sampled.AudioSystem.getAudioInputStream(Unknown Source)
at demo.BatteryBeeper.setupSoundPlayback(BatteryBeeper.java:169)
at demo.BatteryBeeper.<init>(BatteryBeeper.java:41)
at demo.BatteryBeeper.main(BatteryBeeper.java:35)
这是我加载声音的代码:
public void setupSoundPlayback(){
try{
buzzer = AudioSystem.getClip();
in = AudioSystem.getAudioInputStream(BatteryBeeper.class.
getResourceAsStream("sound/buzzer3_x.wav"));
buzzer.open(in);
}catch(Exception e){
e.printStackTrace();
}
}
播放代码如下:
public void playSound(){
buzzer.start();
}
是什么导致了问题?
杂项
这是一个普通的 Eclipse 项目。在src 下有一个sound 文件夹,里面有wave 文件
编辑
在AlexR的回答之后,我改变了路径,得到了一个新的异常:
javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input stream
at javax.sound.sampled.AudioSystem.getAudioInputStream(Unknown Source)
at demo.BatteryBeeper.setupSoundPlayback(BatteryBeeper.java:169)
at demo.BatteryBeeper.<init>(BatteryBeeper.java:41)
at demo.BatteryBeeper.main(BatteryBeeper.java:35)
【问题讨论】:
标签: java nullpointerexception embedded-resource javasound