MIDI 信息成倍增加
Posted
技术标签:
【中文标题】MIDI 信息成倍增加【英文标题】:MIDI messages are multiplying 【发布时间】:2020-01-10 23:00:02 【问题描述】:在 ios 上运行 AKMIDI 时,我一直遇到一个奇怪的问题。我也认为这可能是 IOS 问题,不一定来自 Audiokit。打开输入后,我可以将 MIDI 控制器连接到 iPad 并使用 MIDI 侦听器协议按预期接收消息。如果我通过重启电源或将其从 iPad 上拔下来断开 MIDI 控制器,然后重新连接它,我就会开始在每个事件中收到两条相同的消息。如果我再次重启电源,我开始收到三条消息,等等。我还应该提到,当我检测到设备被移除时,我会关闭输入并清除监听器。当我检测到新连接时,我打开输入并重新开始。有谁知道什么会导致这种情况发生?
【问题讨论】:
你能发布一个示例项目吗? 项目太大,无法发布。也许这会有所帮助。当我检测到我的特定控制器已通过 USB 连接时,我执行以下操作: midi.openInput(uid: inID!) midi.addListener(self) midi.openOutput() 如果我检测到它已断开连接,我执行以下操作: midi.clearListeners () midi.closeOutput() midi.closeInput(uid: inID!) 【参考方案1】:我想我已经找到了解决方法: 如果我只打开一次 MIDI 输入和一次输出,当我的设备第一次被检测到时,它似乎工作正常。我现在只在应用程序终止时关闭进出。您可以循环打开 MIDI 控制器的电源,重新连接时它仍会与应用程序通信。我现在也在使用更通用的调用 openInput()、addListener(self)、openOutput()。
【讨论】:
这听起来完全足够了。此外,当您有一个希望通过运行保持的端口时,您可以保留端口的唯一 ID,并在您的应用下次启动时将其打开。以上是关于MIDI 信息成倍增加的主要内容,如果未能解决你的问题,请参考以下文章