Witam!
W swoim programie mam kilka przycisków, które odtwarzają dźwięki. Problem w tym, że jeżeli klikniemy na przycisk a następnie na kolejny to oba dźwięki się nakładają na siebie. Chciałbym, aby nie dało się odpalić kolejnego dźwięku dopóki poprzednie odtwarzanie się nie skończy. Oto klasa, którą używam do odpalania dźwięku:
class odpal{
odpal(String a){
try {
AudioInputStream stream = AudioSystem.getAudioInputStream(new File(a));
AudioFormat format = stream.getFormat();
if (format.getEncoding() != AudioFormat.Encoding.PCM_SIGNED) {
format = new AudioFormat(
AudioFormat.Encoding.PCM_SIGNED,
format.getSampleRate(),
format.getSampleSizeInBits()*2,
format.getChannels(),
format.getFrameSize()*2,
format.getFrameRate(),
true); // big endian
stream = AudioSystem.getAudioInputStream(format, stream);
}
DataLine.Info info = new DataLine.Info(
Clip.class, stream.getFormat(), ((int)stream.getFrameLength()*format.getFrameSize()));
Clip clip = (Clip) AudioSystem.getLine(info);
clip.open(stream);
clip.start();
} catch (IOException e) {
} catch (LineUnavailableException e) {
} catch (UnsupportedAudioFileException e) {
}
}
}
Pomoże ktoś?