2013-11-17 4 views
0

Так что я пишу такую ​​игру на Java, где вы играете, как Guitar Hero. Я могу играть обе части песни (песню и гитару), и пока все хорошо. Затем мне нужно было отключить гитарную часть, когда кто-то пропустил ключ. Проблема в том, что есть 1 с или так задержка с момента, когда я отключу клип, пока он не отключится. Как можно устранить эту задержку?Delay on Java.Clip Mute Controls

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); 
    } 
+0

Чтобы лучше помочь, опубликуйте [SSCCE] (http://sscce.org/). –

+0

Не используйте клип, используйте потоки ввода/выходные потоки. Затем выведите нули в поток, чтобы отключить звук, который будет потенциально более восприимчивым. – Radiodef

ответ

0

Законченное следующий ответ и использовать потоки байтов Radiodef в. У меня есть буфер, заполненный 0, и я либо выводим это, либо обычный звук в поток.