2015-02-23 5 views
0

пыталось в течение длительного времени, чтобы послать последовательность в миди устройство с JFugue 5:JFugue 5 внешнее миди устройство

 MusicReceiver device = getDeviceByName("name"); 

    Player player = new Player(); 
    Pattern pattern = new Pattern("A");  

    device.sendSequence(player.getSequence(pattern)); 

не может пойти Beyong «типа исключения MidiUnavailableException необработанного» на «устройстве .sendSequence ".

 static MidiDevice.Info getDeviceInfoByName(String name) { 
     for (MidiDevice.Info info : MidiSystem.getMidiDeviceInfo()) { 
      if (info.getName().equals(name)) { 
      return info; 
      } 
     } 
     return null; 
     } 

     static MusicReceiver getDeviceByName(String name) { 
      return new MusicReceiver((MidiDevice) getDeviceInfoByName(name)); 
     } 
+0

Можете ли вы дать всю трассировку стека? –

+0

java.lang.ClassCastException: com.sun.media.sound.MidiInDeviceProvider $ MidiInDeviceInfo не может быть добавлено в javax.sound.midi.MidiDevice – Yan

ответ

0

Вы пытаетесь бросить экземпляр MidiDevice.Info, что вы получите от вашего getDeviceByInfo к MidiDevice. Замените функцию getDeviceByName следующим образом:

static MusicReceiver getDeviceByName(String name) 
     throws MidiUnavailableException { 
    MidiDevice.Info info = getDeviceInfoByName(name); 
    return new MusicReceiver(MidiSystem.getMidiDevice(info)); 
} 
+0

теперь он дает ту же ошибку на линии MidiSystem .. – Yan

+0

eh? Полная трассировка стека, пожалуйста ... –

+0

Как последнее обновление? –