Я, вероятно, подошел к этому неправильно, но мне нужно выяснить, как остановить цикл javax.sound.sampled клип. У меня 9 разных звуков. Я хочу, чтобы другой звук воспроизводился, когда пользователь нажимает кнопку увеличения амплитуды. В настоящий момент я вызываю метод playSound каждый раз, когда нажимают кнопку и он работает, однако это не останавливает звуки, которые уже играют. Звуки просто играют друг над другом.Закройте зацикленный javax.sound.sampled клип
Есть ли способ закрыть все существующие звуки, когда пользователь нажимает кнопку?
Вот мой PlaySound код:
public void playSound(){
try {
audio = AudioSystem.getAudioInputStream(soundFile[activeSound]);
clip = AudioSystem.getClip();
clip.open(audio);
clip.start();
clip.loop(Clip.LOOP_CONTINUOUSLY);
}
catch (IOException ex){
System.out.println("Sorry but there has been a problem reading your file.");
ex.printStackTrace();
}
catch (UnsupportedAudioFileException ex1){
System.out.println("Sorry but the audio file format you are using is not supported.");
ex1.printStackTrace();
}
catch (LineUnavailableException ex2){
System.out.println("Sorry but there are audio line problems.");
ex2.printStackTrace();
}
}
Я был на этом в течение двух дней, и теперь это сводит меня с ума. Любая помощь приветствуется.
Отличная обработка исключений. +1 Кроме того, добро пожаловать в SO. :) –