Audiokit v5-main接收sysex消息未调用receivedMIDISystemCommand问题
AudioKit v5 main分支下SysEx回调未触发的可能原因
- MIDI 2.0 UMP协议兼容性问题
你看到的日志对应AudioKit内部处理UMP(通用MIDI数据包)格式SysEx消息的逻辑,v5 main分支相比切换前的develop分支默认开启了MIDI 2.0支持,而iPadOS 14.6对MIDI 2.0 UMP的支持存在系统级缺陷,多包传输的SysEx消息无法完成完整包校验,导致AudioKit始终停留在等待后续包的状态,不会触发最终的上层回调。可尝试在MIDI实例初始化时强制指定使用MIDI 1.0协议,关闭UMP支持验证是否为该问题。 - SysEx校验规则变更
main分支新增了SysEx消息合法性校验逻辑,包括最大长度限制、包头包尾格式校验等,你接收的SysEx消息不符合新的校验规则,被底层逻辑过滤,仅输出中间处理日志但不会向上触发回调。可对照processUMPSysExMessage函数的后续处理逻辑,核对你收到的SysEx原始数据是否符合校验要求。 - 回调接口适配问题
main分支重构了MIDI回调体系,receivedMIDISystemCommand仅适配MIDI 1.0格式的SysEx消息,UMP格式的SysEx消息需要绑定新增的专用回调接口,使用旧接口自然无法收到回调。可查看MIDI接收类的公开接口定义,确认是否有UMP SysEx相关的回调属性需要绑定。
内容的提问来源于stack exchange,提问作者Maarten L.
相关产品推荐
相关产品推荐

