java声音播放器——sequencer
**
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();}
}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
