我正在尝试解析连接到笔记本电脑的midi设备的输入。所以我想找到设备,连接到它并从中接收输入。
我从select midi device in java开始,但是我在绕过这个问题时遇到了一些麻烦。 我认为jFugue提供了一种访问java声音API的方法,但由于我没有他们的书,所以没有资源。 此外,jMusic提供了一些功能,但它主要用于midi文件IO而不是midi设备IO。 那你知道关于这个主题的任何实用教程(可能直接使用Java声音API)。
一如既往 任何帮助超过赞赏!
答案 0 :(得分:1)
查看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()
。有关详细信息,请参阅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