我在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();
}
但随后声音不播放,整个应用程序开始滞后。这个错误的正确解决方案是什么?