Клип иногда не играет
У меня есть класс 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
каждый раз, когда клавиша нажата. Однако, если я нажимаю клавишу быстро и многократно, звук иногда не воспроизводится. Это особенно заметно через некоторое время (кажется, что проблема ухудшается после каждого нажатия клавиши).
Почему это происходит, и как я могу обойти эту проблему?