O clipe às vezes não é reproduzido
Eu tenho uma classe Sound que contém um método que, quando chamado, reproduz um som usando um objeto Clip (nesse caso,clip
)
public static void play() {
clip.stop(); // The purpose of the first three lines
clip.flush(); // is to restart the Clip object so it
clip.setFramePosition(0); // can be played multiple times.
clip.start();
}
A instanciação do objeto Clip ocorre em um método estático separado, chamado antes desse método, e é por isso que o método acima pode ser declarado estático.
Outra classe que implementaKeyListener
contém o seguinte código:
public void keyPressed(KeyEvent e) {
Sound.play(); // Sound is the class that implements the previous method.
}
Portanto, meu código deve estar reproduzindo o som associado aclip
toda vez que uma tecla é pressionada. No entanto, se eu pressionar uma tecla rápida e repetidamente, o som às vezes não será reproduzido. Isso é especialmente notável depois de um tempo (parece que o problema piora após cada pressionamento de tecla).
Por que isso acontece e como posso contornar esse problema?