我有一个 Sound 类,其中包含一个方法,当调用该方法时,该方法使用 Clip 对象(在本例中为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();
}
Clip 对象的实例化发生在一个单独的静态方法中,该方法在此方法之前调用,这就是上述方法可以声明为静态的原因。
另一个实现的类KeyListener
包含以下代码:
public void keyPressed(KeyEvent e) {
Sound.play(); // Sound is the class that implements the previous method.
}
因此,我的代码应该播放与clip
每次按下键相关的声音。但是,如果我快速反复按下某个键,声音有时会不播放。这在一段时间后尤其明显(似乎每次按键后问题都会变得更糟)。
为什么会发生这种情况,我该如何规避这个问题?