我用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 文档。