如何防止Java音频播放偶尔失败?

时间:2016-05-26 20:42:24

标签: java audio-player

我的应用程序在无效输入时播放警告声。

这通常可以正常工作,但有时它会停止工作(如果我有点压力)并抛出LineUnavailableException: unable to obtain a line并且每次尝试播放声音时都会继续这样做,直到应用程序重新启动。

我的代码如下所示:

URL url=MyClass.class.getClassLoader().getResource("com/app/sound/fail.wav");
AudioInputStream ais = AudioSystem.getAudioInputStream(url);
DataLine.Info info=new DataLine.Info(Clip.class, ais.getFormat());
Clip clipFail=(Clip)AudioSystem.getLine(info);
clipFail.open(ais);
clipFail.start();

我尝试重复使用剪辑,但无法让它多次使用。这甚至可能吗?

如果我添加:

finally {
    if (clipFail!=null) {
        clipFail.close();
    }
}

它可以工作,但是在声音停止播放之前应用程序没有响应。

那么我真的需要手动生成一个新的Thread来播放声音吗?

我还没有能够强调这种方法足以失败,所以它看起来工作得很好,但我觉得应该有一种更简单的方法来做到这一点。

0 个答案:

没有答案