有没有教程介绍如何使用CABTMIDILocalPeripheralViewController()
将MIDI数据从iOS设备发送到mac?
连接正常,但我不知道如何发送MIDI数据。我在谷歌上搜索了大约两个小时,什么也没找到。也许你能帮我?
根据苹果的文档(正如您所发现的),CABTMIDILocalPeripheralViewController
dance所做的只是使联网MIDI设备可用。它实际上并没有建立任何MIDI连接到它在网络上发现的设备。
建立连接后,它只是一个普通的MIDI设备,任何MIDI应用程序都可以与之通信。
这意味着您仍然需要处理应用程序的其余MIDI实现。要做到这一点,您必须使用CoreMIDI
框架,这有点麻烦,尤其是在Swift的世界中。
以下代码说明了如何枚举可用的MIDI设备:
let numDevices = MIDIGetNumberOfDevices()
for ix in 1...numDevices {
let dev = MIDIGetDevice(ix) // `dev` is a MIDIDeviceRef
print("Device (ix) is (dev)") // so it shows up as a number here
var deviceNameCF: Unmanaged<CFString>? // the Swift equivalent of a pointer to a string
let propertyNameErr = MIDIObjectGetStringProperty(dev, kMIDIPropertyName, &deviceNameCF)
if (propertyNameErr != 0) {
print("Error getting property: (propertyNameErr)")
} else {
let deviceName = deviceNameCF!.takeRetainedValue() as? NSString
print("Device name: (deviceName!)")
}
}
对于调试,您可以将其添加到示例中显示的doneAction
处理程序中,或者对于生产中更健壮的处理程序,您可以使用doneAction
处理程序触发UI刷新以显示新可用的设备。
编辑PGMidi库是一个方便、重量轻、许可灵活的选项,用于将MIDI数据发送到目的地,包括通过蓝牙连接到的目的地。