You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AudioKit 5.2.2 MIDI功能在iOS项目失效 macOS项目运行正常问题求助

解决方案

按优先级依次排查调整:

  • 首先补全iOS隐私权限配置
    iOS 14及以上系统要求申请MIDI使用权限,你需要在项目的Info.plist中添加配置项:NSMIDIUsageDescription,值可以填“需要MIDI权限接收外设消息”之类的自定义描述,没有这个权限配置的话,系统会直接拦截MIDI数据,只会保留连接状态变更的通知,就是你现在能收到receivedMIDISetupChange但收不到业务消息的典型表现。
  • 调整API调用顺序
    你当前的调用顺序是先开输入端口再加监听,会导致端口开启瞬间的消息漏报,部分AudioKit版本还会出现后续消息无法回调的问题,把viewDidLoad里的代码顺序调换:
    midi.addListener(self)
    midi.openInput()
    
  • 明确指定监听的MIDI输入端口
    无参数的openInput()在iOS上有时无法自动识别所有外接MIDI设备,你可以先打印已识别的输入设备列表确认设备被系统识别,再主动打开对应端口:
    print("可用MIDI输入:\(midi.inputNames)")
    // 遍历所有输入端口打开,或者指定你要监听的设备名打开
    for inputName in midi.inputNames {
        midi.openInput(name: inputName)
    }
    
  • 检查虚拟MIDI场景的额外配置
    如果你监听的是App内部或者其他App的虚拟MIDI端口,还需要在项目Signing & Capabilities中开启Background Modes,勾选Audio, AirPlay, and Picture in Picture选项,否则App退到后台或者系统资源调度时会切断虚拟MIDI数据流。

内容的提问来源于stack exchange,提问作者Jonny123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 12:06:03