我已经阅读了许多有关此主题的SoF线程和其他站点,但是它们都不适合我,因此我再次询问,希望能够收到定制的答案。
我的jar中有一个.WAV文件,我想播放,但是我得到了NullPointerException.
我尝试了很多方法,甚至通过绝对路径在jar外部播放文件,但是得到了相同的结果。这是播放声音的功能
public void gimli(){ try { Clip clip; AudioInputStream stream = AudioSystem.getAudioInputStream(this.getClass().getResource(Utils.class.getResourceAsStream("gimlilaught.wav").toString())); AudioFormat format = stream.getFormat(); DataLine.Info info = new DataLine.Info(Clip.class, format); clip = (Clip)AudioSystem.getLine(info); clip.open(stream); clip.start(); }catch(Exception ex){ ex.printStackTrace(System.out); }
谢谢您的尝试。
我已经阅读了许多有关此主题的SoF线程和其他站点,但是它们都不适合我,因此我再次询问,希望能够收到定制的答案。我的jar中有一个.WAV文件,我想......>
昨晚我在尝试这个,对我来说似乎有用的是:
try {
File filePath = new File(audioLocation);
if (filePath.exists()) {
AudioInputStream audioInput = AudioSystem.getAudioInputStream(filePath);
Clip clip = AudioSystem.getClip();
clip.open(audioInput);
FloatControl gainControl = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
gainControl.setValue(getVolume());
clip.loop(Clip.LOOP_CONTINUOUSLY);
clip.start();
} else {
System.out.println("Incorrect audio file path!");
}
} catch (Exception e) {
e.printStackTrace();
}