目前这可能实际上是不可能的,这将是不幸的。我正在尝试调用 CoreMIDI API 来设置 MIDI 输入。这就是我在 Swift 中尝试做的事情:
var midiClient = MIDIClientRef()
var inputPort = MIDIEndpointRef()
var status: OSStatus
func readProc(packetList: UnsafePointer<MIDIPacketList>, readProcRefCon: UnsafeMutablePointer<Void>, srcConnRefCon: UnsafeMutablePointer<Void>) -> Void {
}
status = MIDIClientCreate("MIDI client", nil, nil, &midiClient);
status = MIDIDestinationCreate(midiClient, "MIDI input", readProc, nil, &inputPort);
但我收到此错误: '(UnsafePointer, UnsafeMutablePointer, UnsafeMutablePointer) -> Void' 无法转换为 'MIDIReadProc'
MIDIReadProc 的 typedef 如下:
typealias MIDIReadProc = CFunctionPointer<((UnsafePointer<MIDIPacketList>, UnsafeMutablePointer<Void>, UnsafeMutablePointer<Void>) -> Void)>
有没有办法为我的 readProc 方法获取函数指针以传递给 MIDIDestinationCreate API?