2011-11-26 42 views
1

我想下面,MIDI音序例外

MidiDevice.Info[] devices = MidiSystem.getMidiDeviceInfo(); 
     if (devices.length == 0) { 
      System.out.println("No MIDI devices found"); 
     } else { 
      for (MidiDevice.Info dev : devices) { 
       System.out.println(dev); 
      } 
     } 

     Sequencer player = MidiSystem.getSequencer(); 
     player.open(); 

不過,我得到以下,

Real Time Sequencer 
javax.sound.midi.MidiUnavailableException 
at javax.sound.midi.MidiSystem.getDefaultDeviceWrapper(MidiSystem.java:1078) 
at javax.sound.midi.MidiSystem.getReceiver(MidiSystem.java:240) 
at javax.sound.midi.MidiSystem.getSequencer(MidiSystem.java:442) 
at javax.sound.midi.MidiSystem.getSequencer(MidiSystem.java:348) 
at MidiPlayTest.play(MidiPlayTest.java:23) 
at MidiPlayTest.main(MidiPlayTest.java:56) 
Caused by: java.lang.IllegalArgumentException: Requested device not installed 
at javax.sound.midi.MidiSystem.getDefaultDevice(MidiSystem.java:1130) 
at javax.sound.midi.MidiSystem.getDefaultDeviceWrapper(MidiSystem.java:1076) 
... 5 more 
+0

可能相關:http://stackoverflow.com/questions/2715613/midisystem-getsequencer-returns-audio-device-unavailable – finnw

回答

0

嗯,好像有MIDI設備,但這些都是不可用的,如MidiUnavailableException所示。

查看該異常的來源,即您撥打MidiSystem.getSequencer()的電話。在JavaDoc上的方法,你會發現如下:

拋出:
MidiUnavailableException - 如果定序器不適由於資源限制,或無定序器安裝在系統中,或如果連接是真,且有沒有接收可用通過任何已安裝的MidiDevice的

從那裏繼續,即,看其中c另外可能會導致該異常。

+0

-1。 OP的輸出顯示有* not * midi設備存在。 「實時序列器」總是出現在列表中,但它不能單獨運行;它需要一個合成器或輸出端口,並且不存在。 – finnw

+0

有沒有suounbanks在http://java.sun.com/products/java-media/sound/soundbanks.html,但沒有得到相同的 – itsraja

+0

任何示例文檔的Linux系統設置所有 – itsraja