Ciao a tutti mi sono inchiodato su un problema che sicuramente è una cretinata:
ho creato un riproduttore di file midi, riesco a far partire il brano, ma non riesco a stopparlo:
bottone play
codice:
bPlay.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Player player = new Player();
player.getSequence(selectedFile);
}
});
carico il sequence e richiamo Play();
codice:
public Sequence getSequence(File sound){
try {
sequence = MidiSystem.getSequence(sound);
Play(sequence);
return sequence;
} catch (InvalidMidiDataException e) {
e.printStackTrace(); return null;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
codice:
public void Play (Sequence sequence){
if (sequencer != null && sequence != null && sequencer.isOpen()) {
try {
sequencer.setSequence(sequence);
sequencer.start();
} catch (InvalidMidiDataException ex) {
ex.printStackTrace(); }
}
}
il bottone stop
codice:
bStop.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Player player = new Player();
player.Stop();
}
});
codice:
public void Stop(){
if (!sequencer.isRunning() && sequencer.isOpen()){
sequencer.stop();
sequencer.setMicrosecondPosition(0);
sequencer.close();
}
}
Dove sbaglio?