Я пытаюсь воспроизвести MIDI-файлы в браузере и использую Java-апплет, который отлично работает на ПК. Это крайне ненадежно для OSX, поэтому я написал простой тестовый пример, который демонстрирует ту же проблему:
import javax.sound.midi.*;
import java.io.InputStream;
import java.io.IOException;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class MidiPlayer {
public static void main(String[] args) {
try {
Sequencer sequencer = MidiSystem.getSequencer();
if (sequencer == null)
throw new MidiUnavailableException();
sequencer.open();
FileInputStream is = new FileInputStream("sample.mid");
Sequence mySeq = MidiSystem.getSequence(is);
sequencer.setSequence(mySeq);
sequencer.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Похоже, что случайное сообщение теряется ... Как будто примечание не срабатывает, а случайное примечание будет висеть вечно. Это известная проблема в OSX? Похоже, что в наши дни Java не получает достаточно любви от Apple.
Если у кого-то есть лучшее решение для воспроизведения Midi в браузере, я весь в ушах!