问题描述
我有一个 Swift 类,它扩展了 AudioKit 的 MIDIListener
来处理从外部和虚拟设备接收 MIDI 消息。它接收 noteOn
和 noteOff
消息,如下所示:
func receivedMIDINoteOn(noteNumber: MIDINoteNumber,velocity: MIDIVelocity,channel: MIDIChannel,portID: MIDIUniqueID? = nil,offset: MIDITimeStamp = 0) {
DispatchQueue.main.async {
self.data.noteOn = Int(noteNumber)
self.data.velocity = Int(velocity)
self.data.channel = Int(channel)
}
}
func receivedMIDINoteOff(noteNumber: MIDINoteNumber,offset: MIDITimeStamp = 0) {
DispatchQueue.main.async {
self.data.noteOff = Int(noteNumber)
self.data.channel = Int(channel)
}
}
我希望这个类还可以处理广播或将应用程序中创建的 MIDI 消息发送到这些外部和虚拟设备。我正在通过这些调用这样做:
midi.sendNoteOnMessage(noteNumber: MIDINoteNumber(note),velocity: MIDIVelocity(velocity))
还有:
midi.sendNoteOffMessage(noteNumber: MIDINoteNumber(note),velocity: MIDIVelocity(velocity))
但是,当我发送消息时,received
方法也会触发。这会复制应用程序中最终用户的预期行为。是否有一种首选方法可以不发送消息,但不让它们在应用程序内部接收?或者我应该调用不同的方法?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)