多次播放后,java .wav播放失败

时间:2014-12-15 12:55:48

标签: java url audio clip

我正在尝试播放.wav文件。我正在使用此代码:

public static synchronized void play(String path) {     
    try {
        URL soundUrl = SoundTools.class.getResource(path);
        AudioInputStream stream = AudioSystem.getAudioInputStream(soundUrl);
        AudioFormat format = stream.getFormat();
        DataLine.Info info = new DataLine.Info(Clip.class, format);
        Clip clip = (Clip) AudioSystem.getLine(info);
        clip.open(stream);
        clip.start();
    }
    catch (Exception e) {
        System.out.println(e.getMessage());
        e.printStackTrace();
    }
}

代码运行良好一段时间,但在大约30次播放后,我得到javax.sound.sampled.LineUnavailableException。错误消息显示unable to obtain a line。我认为这与系统资源有关,但我不知道如何修复它。

1 个答案:

答案 0 :(得分:2)

您永远不会关闭Clip这是Line的子类,这就是您收到此错误的原因。完成后使用close方法(这样可以释放资源)关闭剪辑,如下所示

clip.close();