我試圖在瀏覽器中播放midi,並且一直在使用可在PC上正常工作的Java Applet。它在OSX極不可靠,所以我寫了表現出同樣的問題,一個簡單的測試用例:Mac OSX中的Java Midi Broken?
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();
}
}
}
這聽起來像偶爾的消息越來越下降了。像一個noteoff不會閃光,並且隨機注會永遠堅持下去。這是OSX中的一個已知問題嗎?似乎Java現在還沒有從蘋果那裏獲得足夠的愛。
如果任何人有更好的解決方案來在瀏覽器中播放Midi,那麼我都是耳朵!
您可以使用可以熱鏈接的MIDI重現問題嗎?例如。在我的[媒體頁面](http://pscode.org/media/#sound)上有2個12Kb以下的可用空間。 –
[這是一個示例文件](http://dl.dropbox.com/u/29939553/november%20rain.mid) 我離開了我的mac工作;在我測試你的文件後,明天再回到你身邊。這個問題似乎隨機發生!我無法可靠地重現它。它至少每30秒發生一次。 – Ben
Andrew,我已經能夠非常可靠地使用您鏈接的EverLove和AftrMdnt測試文件重新創建問題。如果沒有合成器懸掛,我無法播放超過20秒鐘(音符懸掛,沒有發送新的音符命令)。這個問題似乎是隨機發生的。 – Ben