我们正在添加对在我们的应用程序中访问各种 MIDI 控制器设备的支持。从我们自己的使用试验来看midiInOpen
,似乎只有一个应用程序可以使用midiInOpen
. 尝试打开 MIDI 设备的第二个应用程序失败并出现错误MMSYSERR_NOMEM
。
但是,我有一个商业应用程序(第 3 方)的示例,它设法与我们的应用程序(使用midiInOpen
)同时访问 MIDI 输入流。这表明还有另一种访问 MIDI 流的方法。
我使用 API 嗅探器查看 API 调用,而此应用程序不使用midiInOpen
. 它使用midiInMessage
and midiOutMessage
,并且从 API 文档中,这些似乎直接与驱动程序通信。
我从文档中看到,Windows 10 提供了对 MIDI 的新支持;我还没有尝试过它如何与使用midiInOpen
.
我已经联系了第三方应用程序开发人员,看看他们是否可以提供帮助。目前。我们的应用程序与他们的应用程序一起工作,但还有其他应用程序用于midiInOpen
访问 MIDI 数据,我们的应用程序不能与他们的应用程序共存。第一个调用midiInOpen
的应用程序获取 MIDI 流;第二次调用失败。
所有这些测试都是在 Windows 7 上完成的。我们需要支持 7 及更高版本。
我们的应用程序的 mac 版本在这方面运行良好。