我用coremidi没问题,但我也想支持外接USB功能。
我尝试了一个名为 Midi Monitor 的应用程序,它在连接时确实可以找到我的 USB 接口。问题是如何通过我自己的应用程序启用这个界面。正如 MIDIGetNumberOfExternalDevices 文档中所说,“它们的存在是完全可选的,只有当 UI(例如音频 MIDI 设置)添加它们时。”
我应该如何添加它们?
此致。
“外部设备”不是您想要的。这些是用户可以在 OS X 的音频 MIDI 设置中创建的东西,用于表示通过 MIDI 电缆连接到计算机的合成器或键盘或其他设备。系统不会自动创建它们。(它不能,因为 MIDI 非常原始并且没有设备发现协议。)
外部设备只是为了用户命名和安排事物的利益。它们不能用于 MIDI 输入或输出。它们在 iOS 中尤其没用,因为没有音频 MIDI 设置应用程序。
相反,使用MIDIGetNumberOfSources和MIDIGetSource查找 MIDI 数据源。
要实际获取输入,请使用MIDIInputPortCreate创建一个输入端口,然后MIDIPortConnectSource将一个或多个源连接到该端口。MIDIReadProc然后当 MIDI 进入时,您的端口将被调用。
类似地,对于输出,您可以使用MIDIGetNumberOfDestinations和MIDIGetDestination查找目标,使用 创建输出端口MIDIOutputPortCreate,并MIDISend通过端口将数据发送到目标。
如需参考,请参阅MIDIServices 文档。