繁体   English   中英

使用Java读取Midi IO设备

[英]read midi IO device with java

我试图解析来自连接到笔记本电脑的Midi设备的输入。 所以我想找到设备,连接到它并从它接收输入。

我从Java中的select midi设备开始,但是在解决这一问题时遇到了一些麻烦。 我考虑过jFugue,它提供了一种访问Java声音API的方法,但是由于我没有他们的书,所以没有资源。 另外,jMusic提供了一些功能,但主要用于midi文件IO,而不是midi设备IO。 因此,您知道关于该主题的任何实用教程(可能直接使用Java声音API)。

一如既往,任何帮助均不胜感激!

看一下Java Sound教程: http : //docs.oracle.com/javase/tutorial/sound/accessing-MIDI.html它包含对Java MIDI API的很好的解释,还包含有关如何枚举设备的示例源代码。

有以下示例源代码:

// Obtain information about all the installed synthesizers.
Vector synthInfos;
MidiDevice device;
MidiDevice.Info[] infos = MidiSystem.getMidiDeviceInfo();
for (int i = 0; i < infos.length; i++) {
  try {
    device = MidiSystem.getMidiDevice(infos[i]);
  } catch (MidiUnavailableException e) {
      // Handle or throw exception...
  }
  if (device instanceof Synthesizer) {
    synthInfos.add(infos[i]);
  }
}
// Now, display strings from synthInfos list in GUI. 

当您获取MIDI设备时,您可以(在先前的源代码中)

  • 通过调用infos[i].getName获取设备名称
  • 通过调用infos[i].getVendor()获得设备供应商
  • 通过调用device.getMaxReceivers()device.getMaxTransmitters()检查这是输入设备还是输出设备(如果一个“物理”设备提供输入和输出端口,它们将被视为Java中的两个设备,一个用于输入,第二个用于输出)。 device.getMaxTransmitters()

有关更多详细信息,请参见API文档:-http: //docs.oracle.com/javase/1.5.0/docs/api/javax/sound/midi/MidiDevice.html-http : //docs.oracle.com/javase /1.5.0/docs/api/javax/sound/midi/MidiDevice.Info.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM