Java sequencer Listener

时间:2013-06-28 19:56:42

标签: java midi

我正在用java编写游戏,并尝试添加音乐。 我这样做:

Sequencer sequencer = MidiSystem.getSequencer();
sequencer.open();
InputStream midiFile = this.getClass().getResourceAsStream( "/res/Popcorn.mid" ); 
sequencer.setSequence( MidiSystem.getSequence(midiFile) ); 
sequencer.start(); 

问题是,文件不是很小,所以在游戏开始时它的加载。 那么,有没有像定序器监听器那样的东西,所以我可以等到声音加载完毕?

或者,如果没有,有没有办法为我自己编程?

谢谢!

1 个答案:

答案 0 :(得分:2)

您必须添加加载。例如:您在新线程中运行主类。例如:

public static void main(String[] args) {
    new Thread() {
        public void run(){
            JFrame ... //frame with game
            //now you add text type "Please wait"

            Sequencer sequencer = MidiSystem.getSequencer();
            sequencer.open();
            InputStream midiFile = this.getClass().getResourceAsStream( "/res/Popcorn.mid" ); 
            sequencer.setSequence( MidiSystem.getSequence(midiFile) ); 
            sequencer.start(); 
            //Starting the game here

            //You must close this game at end
            System.exit(0);
        }
    }.start();
    while(true) { //this is slepping this program
        Thread.sleep(4096);
    }

抱歉我的英语不好。