2013-09-23 15 views
0

Я беру файлы .mid, используемые игрой, и создаю барабанную табулатуру из них. Он отлично работает для некоторых .mid файлов, но другие производят EOFExceptionEOF Исключение при загрузке midi-файлов

Я использую экстракт кода, взятый из DumpSequence.java

Sequence sequence = null; 
File midiFile = new File(strFilename); 
sequence = MidiSystem.getSequence(midiFile); 

(пакета является javax.sound.midi)

Ошибка брошено:

java.io.EOFException: недопустимый MIDI файл
в com.sun.media.sound.SMFParser.readTrack (Unknown Source)
на com.sun.media.sound.StandardMidiFileReader.getSequence (Unknown Source)
в com.sun.media.sound.StandardMidiFileReader.getSequence (Unknown Source)
в javax.sound.midi.MidiSystem.getSequence (Unknown Source)
в DumpSequence.main (DumpSequence.java:125)

Может кто-нибудь мне точку в правильном направлении, о том, как это исправить? Я пробовал найти решение, сам, но пришел пустым.

+1

Когда вы получаете эту ошибку? –

+0

Программа принимает строку для пути midi и имени файла. После проверки того, были ли переданы какие-либо другие параметры, программа затем пытается загрузить файл midi. Это когда возникает ошибка. – user2808584

+0

, поэтому его: sequence = MidiSystem.getSequence (midiFile); строка, которая выдает исключение? –

ответ

1

Я могу придумать несколько возможностей:

  1. Как говорится в сообщении об ошибке, то MIDI-файл на самом деле имеет неверный формат.
  2. Порядок байтов для этого файла отличается от байта и не указан в самом файле.
  3. Версия Java (или библиотеки javax.sound), которую вы используете, не понимает этот формат MIDI-файла.

Вы должны быть в состоянии легко проверить, действителен ли формат файла, воспроизводя его с помощью другого проигрывателя MIDI-файлов. Затем убедитесь, что любая другая хорошо известная Java-MIDI-программа может обрабатывать ее.

Смежные вопросы