package audio;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import javax.sound.midi.MidiSystem;
import javax.sound.midi.Sequence;
import javax.sound.midi.Sequencer;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
/*
* http://stackoverflow.com/tags/javasound/info
*
*/
public class MidiPlayer {
private URL url;
private Sequence sequence;
private Sequencer sequencer;
// constructor that takes the name of an MP3 file
public MidiPlayer(URL url) {
this.url = url;
}
public void close() {
if(sequencer != null && sequencer.isOpen()) {
try {
sequencer.close();
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
// play the MIDI file to the sound card
public void play() {
try {
sequence = MidiSystem.getSequence(url);
sequencer = MidiSystem.getSequencer(false);
sequencer.open();
sequencer.setSequence(sequence);
}
catch (Exception e) {
System.out.println("Problem playing file " + url);
System.out.println(e);
}
// run in new thread to play in background
new Thread() {
public void run() {
try {
sequencer.start();
}
catch (Exception e) { System.out.println(e); }
}
}.start();
}
public static void main(String args[]) throws MalformedURLException {
MidiPlayer player = new MidiPlayer(new URL("file:/C:\\WINDOWS\\Media\\town.mid"));
player.play();
for(int i=0;i<10000000; i++) {
System.out.println(i);
}
}
}