1

我在java中单击按钮时播放声音时遇到错误。我有一个按钮字段,如果按下任何按钮,应用程序会播放声音。但是应用程序向我抛出了一个异常:

  javax.sound.sampled.LineUnavailableException: unable to obtain a line

方法如下所示,并在按下按钮时调用:

public void playSound() {
    try {
        File file = new File("Sounds/sound.wav");
        AudioInputStream hitStream = AudioSystem.getAudioInputStream(file);
        AudioFormat format = hitStream.getFormat();
        DataLine.Info info = new DataLine.Info(Clip.class, format);
        Clip clip = (Clip) AudioSystem.getLine(info);
        clip.open(hitStream);
        clip.start();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

开始播放声音然后崩溃。我搜索了异常,发现播放声音后应该关闭剪辑。我想我应该在clip.start()之后添加行

if (!clip.isRunning()) {
   clip.stop();
   clip.close();        
}

但随后声音不播放,整个应用程序开始滞后。这个错误的正确解决方案是什么?

4

0 回答 0