加载midi文件时出现EOF异常

时间:2013-09-23 19:51:07

标签: java audio midi

我正在使用游戏使用的.mid文件,并从中生成鼓乐器。它适用于某些.mid文件,但其他文件会生成EOFException

我正在使用从DumpSequence.java

获取的代码摘录
Sequence sequence = null;
File midiFile = new File(strFilename);
sequence = MidiSystem.getSequence(midiFile);

(包是javax.sound.midi)

抛出错误:

java.io.EOFException:无效的MIDI文件
    at com.sun.media.sound.SMFParser.readTrack(Unknown Source)
    at com.sun.media.sound.StandardMidiFileReader.getSequence(Unknown Source)
    at com.sun.media.sound.StandardMidiFileReader.getSequence(Unknown Source)
    在javax.sound.midi.MidiSystem.getSequence(未知来源)
    在DumpSequence.main(DumpSequence.java:125)

有人能指出我正确的方向,如何解决这个问题?我自己试过找到一个解决方案,但是空洞了。

1 个答案:

答案 0 :(得分:1)

我可以想到几个可能性:

  1. 如错误消息所示,MIDI文件实际上格式无效。
  2. 此文件的字节顺序不同,文件本身未指明。
  3. 您使用的Java(或javax.sound库)版本无法理解此MIDI文件格式。
  4. 通过使用其他MIDI文件播放器播放,您应该能够轻松验证文件格式是否有效。然后确保任何其他已知良好的Java MIDI程序都能够处理它。