【问题标题】:JFugue 5 external midi deviceJFugue 5 外接 MIDI 设备
【发布时间】:2015-02-23 20:26:48
【问题描述】:

长期以来一直在尝试使用 jFugue 5 将序列发送到 midi 设备:

     MusicReceiver device = getDeviceByName("name");

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

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

无法超越 “device.sendSequence” 上的“未处理的异常类型 MidiUnavailableException”

     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));
      }

【问题讨论】:

  • 你能提供你的整个堆栈跟踪吗?
  • java.lang.ClassCastException: com.sun.media.sound.MidiInDeviceProvider$MidiInDeviceInfo 无法转换为 javax.sound.midi.MidiDevice

标签: java midi javax.sound.midi jfugue


【解决方案1】:

您正在尝试将从您的getDeviceByInfo 获得的MidiDevice.Info 实例转换为MidiDevice。将您的 getDeviceByName 函数替换为以下内容:

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

【讨论】:

  • 线程“main”java.lang.Error中的异常:未解决的编译问题:未处理的异常类型MidiUnavailableException
  • 来自 javadoc:“MidiUnavailableException - 如果请求的设备由于资源限制不可用”——所以我猜你的特定 MIDI 设备有问题
  • 但是 "MidiSystem.getMidiDevice(info))" 和 "device.sendSequence(player.getSequence(pattern))" 都有下划线,我什至无法编译,这怎么可能是个问题特定设备的
  • 对不起,我忘记了 MidiUnavailableException 不是 RuntimeException。此最新编辑将解决该问题,但您需要在 MusicReceiver device = getDeviceByName("name"); 周围抛出 try/catch 或进行其他类型的错误处理
  • javax.sound.midi.MidiUnavailableException: MIDI IN 接收器在 com.sun.media.sound.AbstractMidiDevice.createReceiver(Unknown Source) at com.sun.media.sound.AbstractMidiDevice.getReceiver(来源不明)
猜你喜欢
  • 2011-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-25
相关资源
最近更新 更多