BatteryBeeper というタイトルの個人用ソフトウェアを作成しています。充電がリマインダーに設定したものになると、ラップトップを充電するようにリマインダーが表示されます。
充電が設定されたしきい値に達したときにサウンドを再生することになっています。
私は答えを見ました:ジャーで音が鳴らず、ジガー・AudioInputStream
ジョシが言及したのと同じように構成されています。
ただし、null 例外が発生します。
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 プロジェクトです。その下にwaveファイルが あるsound
フォルダがありますsrc
編集
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)