使用java.sound.sampled.Clip播放声音文件的正确方法是什么>

问题描述 投票:0回答:1

我已经阅读了许多有关此主题的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文件,我想......>

java file audio jar nullpointerexception
1个回答
0
投票

昨晚我在尝试这个,对我来说似乎有用的是:

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();
        }
© www.soinside.com 2019 - 2024. All rights reserved.