packagetest1;importjava.io.File;importjava.io.IOException;importjava.io.InputStream;importjava.util.Hashtable;importjava.util.Map;importjava.util.logging.Level;importjava.util.logging.Logger;importjavax.sound.midi.InvalidMidiDataException;importjavax.sound.midi.MidiSystem;importjavax.sound.midi.MidiUnavailableException;importjavax.sound.midi.Sequence;importjavax.sound.midi.Sequencer;
public class Test5 implementsRunnable{privateSequencer midi;private String[] names={"1.mid","2.mid","3.mid","4.mid","5.mid"};private inti;private Mapmap;publicTest5(){
initMap();new Thread(this).start();
}private voidinitMap(){try{
map= new Hashtable();
midi= MidiSystem.getSequencer(false);
midi.open();for(String s : names) {try{
Sequence s1= MidiSystem.getSequence(newFile(s));
map.put(s, s1);
}catch(InvalidMidiDataException ex) {
Logger.getLogger(Test5.class.getName()).log(Level.SEVERE, null, ex);
}catch(IOException ex) {
Logger.getLogger(Test5.class.getName()).log(Level.SEVERE, null, ex);
}
}
}catch(MidiUnavailableException ex) {
Logger.getLogger(Test5.class.getName()).log(Level.SEVERE, null, ex);
}
}private voidcreatePlayer(String name){try{
Sequence se=map.get(name);
midi.setSequence(se);
midi.start();
}catch(InvalidMidiDataException ex) {
Logger.getLogger(Test5.class.getName()).log(Level.SEVERE, null, ex);
}
}public voidrun(){while(true){try{
System.out.println("换文件了."+(++i));
String name=names[(int)(Math.random()*names.length)];
createPlayer(name);
Thread.sleep(10000);
}catch(InterruptedException ex) {
Logger.getLogger(Test5.class.getName()).log(Level.SEVERE, null, ex);
}
}
}public static voidmain(String[] args) {newTest5();
}
}