-2

为什么下面的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 文件位于此处

在此处输入图像描述

4

1 回答 1

0

您可以通过这种方式构建 AudioInputStream:

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

不要忘记检查 InputStream 是否为空。如果出现问题,它会让您有更多的控制权来调查。此片段假定您的类路径中有可用的资源 Audio/police.wav

于 2013-09-05T11:53:05.997 回答