我确定文件名正确!那么AudioSystem.getAudioInputStream
中出了什么问题?
public class Main {
public static void main(String[] args) {
public static Clip clip;
AudioInputStream audioStream = null;
try {
//URL soundUrl = Main.class.getResource("D:/eclipse/workplace/AudioTestAPI/2.mp3");
URL soundUrl = Main.class.getResource("D:/eclipse/workplace/AudioTestAPI/3.wav");
audioStream = AudioSystem.getAudioInputStream(soundUrl);//42
clip.open(audioStream);
} catch(LineUnavailableException e) {
e.printStackTrace();
} catch(UnsupportedAudioFileException ex) {
ex.printStackTrace();
} catch(IOException eo) {
eo.printStackTrace();
}
clip.start();
do {
try {
Thread.sleep(50);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} while(clip.isActive());
}
}
结果:
Exception in thread "main" java.lang.NullPointerException
at java.base/java.util.Objects.requireNonNull(Objects.java:221)
at java.desktop/javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1032)
at Main.main(Main.java:42)
java.lang.NullPointerException
出现是因为您的变量soundUrl
为null
。
尝试一下:
File file = new File("D:/eclipse/workplace/AudioTestAPI/3.wav");
audioStream = AudioSystem.getAudioInputStream(file);
让我知道我的建议之后发生了什么。