我想在我的游戏中添加一些声音,但有时会抛出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中。
你可以帮我解决这个问题吗?谢谢!