小编Nic*_*eld的帖子

如何将AKSequencer连接到AKCallbackInstrument?

我想读取midi文件并在触发音符事件时显示内容.我发现了这个stackoverflow问题,其中第二个答案建议使用AudioKit: 如何为我的音频应用程序获得可靠的时间? 更确切地说,建议是使用AKSequencer吸收应用程序中的midi文件,然后将其链接到AKCallbackInstrument以触发事件并为每个midi音符事件调用函数.

我使用本教程安装了AudioKit 4.5.5 https://www.youtube.com/watch?v=iUvWxWvRvo8 然后我设法运行了教程的代码,所以我知道AudioKit正确地包含在项目中.

然后我写了自己的代码:

let sequencer = AKSequencer(filename: "myMidiFile.mid")
let callbackInstr = AKCallbackInstrument()

callbackInstr.callback = myCallBack
sequencer.setGlobalMIDIOutput(callbackInstr.midiIn)

func myCallBack(a:UInt8, b:MIDINoteNumber, c:MIDIVelocity){
    print(b)
}

func test() {
    do {
        try AudioKit.start()
    }
    catch {
        print("Oops! AudioKit didn't start!")
    }

    sequencer.play()
}
Run Code Online (Sandbox Code Playgroud)

当我尝试构建我的项目时,该行有一个错误 sequencer.setGlobalMIDIOutput(callbackInstr.midiIn)

错误是 Value of type 'AKCallbackInstrument' has no member 'midiIn'

我试图清理项目并重新构建,但错误仍然存​​在.

你能解释一下我为什么会收到这个错误?我该怎么做才能解决它?因为在AudioKit文档中,我发现AKCallbackInstrument是AKMIDIInstrument的子类,它有一个名为'midiIn'的属性. https://audiokit.io/docs/Classes/AKCallbackInstrument.html https://audiokit.io/docs/Classes/AKMIDIInstrument.html

swift audiokit

6
推荐指数
2
解决办法
204
查看次数

标签 统计

audiokit ×1

swift ×1