**
java声音播放器——sequencer
**
package miniMusicCmdLine;
import static java.lang.System.out;
import javax.sound.midi.MidiEvent;
import javax.sound.midi.MidiSystem;
import javax.sound.midi.Sequence;
import javax.sound.midi.Sequencer;
import javax.sound.midi.ShortMessage;
import javax.sound.midi.Track;
public class MiniMusicCmdline {
public static void main(String[]args) {
MiniMusicCmdline mini=new MiniMusicCmdline();
mini.play(40, 70);
}
public void play(int instrument,int note) {
try {
//相当于申请一个播放机
Sequencer player=MidiSystem.getSequencer();
player.open();//打开播放机
//创建一个碟片
Sequence seq=new Sequence(Sequence.PPQ,4);
//创建一个曲谱单子
Track track=seq.createTrack();
//向曲谱中写入内容
//shortmessage是执行的内容
ShortMessage first=new ShortMessage();
first.setMessage(192,1,instrument,0);//信息类型,频道(乐器类型),音符,音道(声音大小)
//MidiEvent是内容执行的时机
MidiEvent changeInstrument=new MidiEvent(first,1);//音长
track.add(changeInstrument);
ShortMessage a=new ShortMessage();
a.setMessage(144,1,note,100);
MidiEvent noteon=new MidiEvent(a,1);
track.add(noteon);
ShortMessage b=new ShortMessage();
b.setMessage(128,1,note,100);
MidiEvent noteoff=new MidiEvent(b,16);
track.add(noteoff);
player.setSequence(seq);
player.start();
}catch(Exception ex) {ex.printStackTrace();
}
}
}