随机抛出LineUnavailableException

时间:2014-05-22 09:44:44

标签: java audio wav

我想在我的游戏中添加一些声音,但有时会抛出LineUnavailableException

line with format PCM_SIGNED 22050.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian not supported

此异常实际上是随机出现的 - 例如,它会播放相同的声音十次,并在下次尝试时抛出异常。

对于播放声音,我使用以下代码:

private void playSound(String path) {     
        AudioInputStream audio = null;
        try {

            audio = AudioSystem.getAudioInputStream(new File(path));
            Clip clip = AudioSystem.getClip();
            clip.open(audio);
            clip.start();
        } catch (IOException ex) {
            Logger.getLogger(GameLogic.class.getName()).log(Level.SEVERE, null, ex);
        } catch (LineUnavailableException ex) {
            Logger.getLogger(GameLogic.class.getName()).log(Level.SEVERE, null, ex);
        } catch (UnsupportedAudioFileException ex) {
            Logger.getLogger(GameLogic.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            try {
                audio.close();
            } catch (IOException ex) {
                Logger.getLogger(GameLogic.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

我尝试过其他格式的其他声音(22kHz,8bit,单声道,1B /帧),但没有变化。每个声音都在WAV中。

你可以帮我解决这个问题吗?谢谢!

0 个答案:

没有答案