3
我正在嘗試在我正在製作的java遊戲中循環播放MIDI序列,並且出現了一些問題。在Java中循環播放MIDI序列
我現在的代碼確實重複了序列,但序列結束和重新啓動之間有很大的延遲。我怎樣才能消除這一點?
這裏是我的代碼:
try
{
// From file
final Sequence sequence = MidiSystem.getSequence(new File("main menu.mid"));
sequencer = MidiSystem.getSequencer();
sequencer.open();
sequencer.addMetaEventListener(new MetaEventListener() {
public void meta(MetaMessage msg) {
if (msg.getType() == 47) { // End of track
sequencer.setTickPosition(0);
try
{
sequencer.setSequence(sequence);
} catch(InvalidMidiDataException e) {e.printStackTrace();}
sequencer.start();
}
}
});
sequencer.setSequence(sequence);
// Start playing
sequencer.start();
} catch (IOException e) {e.printStackTrace();}
catch (MidiUnavailableException e) {e.printStackTrace();}
catch (InvalidMidiDataException e) {e.printStackTrace();}
我檢查了MIDI文件的尾隨沉默。空無一人。文件在聲音結束時結束。 – MichaelPlante