swift - Audiokit 中 AKButton 的回调

标签 swift callback audiokit

我正在尝试了解如何按照 Audiokit Docs 上的说明将回调附加到 AudioKit 上的按钮我的代码:

import UIKit
import AudioKit
import AudioKitUI

class ViewController: UIViewController {
    let sounds = AKSampler()
    @IBOutlet weak var tam: AKButton!
    override func viewDidLoad() {
        do {
            let hiTomFile = try AKAudioFile(readFileName: "hi_tom_D2.wav")
            try sounds.loadAudioFiles([hiTomFile])
            AudioKit.output = sounds
        } catch {
            print ("error reading file")
        }
        do {
            try AudioKit.start()
        } catch {
            AKLog("AudioKit did not start!")
        }
        // Bad access here!
        tam.callback = { button in self.sounds.play() }
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

但是我的访问权限很差。关于我做错了什么的任何提示?

最佳答案

我能让你的按钮正常工作。你的 Storyboard中有一个 UIButton,但我创建了一个通用的 UIView,将类从模块“AudioKitUI”更改为“AKButton”,然后将它连接到你的“tam”声明并点击它运行回调,没有错误。

关于swift - Audiokit 中 AKButton 的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49468274/

相关文章:

ios - 如何直接从 Storyboard中的第一个导航 Controller 快速执行 segue?

swift - 在快速分配时

python - 如何在回调函数中获取换行符(%s 或 .format)

javascript - 无法成功将回调传递到函数链中

midi - 通过虚拟输出使用 AKSequencer 发送 midi

ios - fatal error : Invariant violated: opaque small strings

ios - 在 Swift 中使用相同的运算符 (===)

c++ - 如何正确地将回调从 C++ 引擎返回到 obj-c 程序?

ios - AudioKit:将新的 AKSequencer 与任何种类的回调乐器结合使用

swift - 使用新的 AKSampler 和 SFZ 加载和播放(Round Robins)