音频wav文件在java中不再起作用

时间:2013-09-05 11:38:50

标签: java audio playback

为什么下面的wav音频文件没有在java中播放,奇怪的是,它是有效的,但当我关闭Netbean并重新打开项目时,它将不再播放。

如果我尝试URL url = new URL("http://pscode.org/media/leftright.wav");它有效吗?!?!

代码

URL url = this.getClass().getClassLoader().getResource("Audio/police.wav");
// URL url = new URL("http://pscode.org/media/leftright.wav");
AudioInputStream ais = AudioSystem.getAudioInputStream(url);
Clip clip = AudioSystem.getClip();
clip.open(ais); 

错误是

Sep 05, 2013 9:40:40 PM javafxapplication4.JavaFXApplication4$1 run
SEVERE: null
java.lang.NullPointerException
    at com.sun.media.sound.StandardMidiFileReader.getSequence(StandardMidiFileReader.java:205)
    at javax.sound.midi.MidiSystem.getSequence(MidiSystem.java:838)
    at com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream(SoftMidiAudioFileReader.java:174)
    at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1146)
    at javafxapplication4.JavaFXApplication4$1.run(JavaFXApplication4.java:268)
    at java.util.TimerThread.mainLoop(Timer.java:555)
    at java.util.TimerThread.run(Timer.java:505)

我的wav文件位于此处

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以这样构建AudioInputStream:

InputStream is = ClassLoader.getSystemResourceAsStream("Audio/police.wav");
AudioInputStream ais = AudioSystem.getAudioInputStream(is);

不要忘记检查InputStream是否为null。如果出现问题,它将为您提供更多控制权。此代码段假定您的类路径中有可用的资源Audio / police.wav