因此,我正在用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的缓冲区,我要么将其输出,要么将正常音频输出到流中。

07-24 09:23