我在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();
}
}
声音在开始播放然后崩溃。我用google搜索异常,发现播放声音后应该关闭剪辑。我想我应该在 clip.start()
之后添加一行if (!clip.isRunning()) {
clip.stop();
clip.close();
}
然后声音不播放,整个应用程序开始滞后。这个错误的正确解决方案是什么?