簡単な音楽プレーヤーのjava実装(一)


先日head firstシリーズを読んでいたと書いてありましたが、今ちょうどjavaを読んでいます.この本は深くて浅くて、環がつながっていて、とてもすばらしくて、みんなに安利をあげて、ついでに私の学習過程の中のいくつかの心得をすでに実例を分かち合いました.
1.最も簡単な音楽プレーヤーのニーズ
私たちは4つのものが必要です:(1)プレーヤー–Sequencer(実際に音楽を再生するコントロールで、CDプレイヤーとして想像できます);(2)再生される音楽–Sequence(CDだと想像していますが、私たちのプログラムには1曲しか含まれていません).(3)音楽が格納する情報–トラック(Sequenceで音楽情報を格納するために使用される部分)(4)実際の音楽情報–MidiEvent(再生時間、再生記録などを含む)
2.最も簡単な音楽プレーヤーの5つのステップの実現
(1)Sequencerを作成して開く:
Sequencer player = MidiSystem.getSequencer();
player.open();

(2)新しいSequenceを作成する:
Sequence seq = new Sequence(timing, 4);

(3)このSequenceで新しいTrackを得る:
Track track = seq.createTrack();

(4)TrackをMidiEventsで埋め、SequenceをSequencerに入れる.
track.add(myMidiEvent1);    
player.setSequence(seq);

(5)再生開始:
player.start();

3.その他考慮すべき要素
(1)javax.soud.midi.*(2)例外処理try–catch注:例外エラーが発生する可能性がありますMidiUnavailableExceptionをキャプチャまたは宣言する必要があります
4.インスタンスコード
import javax.sound.midi.*; // The midi package is necessary

public class MiniMusicApp {
    public static void main(String[] args) {
        MiniMusicApp mini = new MiniMusicApp();
        mini.play();
    }

    public void play() {
        try {
            // Get a sequencer and open it
            Sequencer player = MidiSystem.getSequencer();
            player.open();

            Sequence seq = new Sequence(Sequence.PPQ, 4); //Treat the arguments as Ready-bake arguments

            Track track = seq.createTrack(); // Ask the sequence for a track

            // Put some MidiEvents into the Track, the setMessage() method is what we should really care
            ShortMessage a = new ShortMessage();
            a.setMessage(144, 1, 44, 100);
            MidiEvent noteOn = new MidiEvent(a, 1);
            track.add(noteOn);

            ShortMessage b = new ShortMessage();
            b.setMessage(128, 1, 44, 100);
            MidiEvent noteOff = new MidiEvent(b, 16);
            track.add(noteOff); 

            player.setSequence(seq); // Give the sequence to the Sequencer
                                     // like pushing a CD to a CD player

            player.start();  // Start the sequencer like pushing PLAY
        }

        catch(Exception ex) {
            ex.printStackTrace();
        }
    }  // Close play
} // Close class

これで、最も簡単な音楽プレーヤーが完成しました.もちろん、非常に簡単なMidiEventを使っているので、プログラムを実行すると4秒ほどのチリンという音しか聞こえません.
その後も音楽プレーヤーを完備し続け、後文を読むか、書籍Head First Javaの第11章から14章を直接参照することができます.