因此,我正在用Java编写此类游戏,您在游戏中会像Guitar Hero一样玩。到目前为止,我可以同时播放歌曲的两个部分(歌曲和吉他)。
接下来,当有人错过琴键时,我需要使吉他声部分静音。问题是,从我静音剪辑到实际静音之间有1秒左右的延迟。
如何解决此延迟?
try {
audioIn = AudioSystem.getAudioInputStream(new File("guitar.wav"));
guitar = AudioSystem.getClip();
guitar.open(audioIn);
} catch (Exception e) {}
guitar.start();
volume = (BooleanControl) guitar.getControl(BooleanControl.Type.MUTE);
在游戏循环中:
if (missedKey()) {
volume.setValue(true);
} else {
volume.setValue(false);
}
最佳答案
最终跟随Radiodef的回答并使用字节流。我有一个充满0的缓冲区,我要么将其输出,要么将正常音频输出到流中。