2

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

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

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

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

谢谢!

4

1 回答 1

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);
    }

对不起,我的英语不好。

于 2013-06-28T20:07:07.920 回答