【问题标题】:callback for AKButton in AudiokitAudiokit 中 AKButton 的回调
【发布时间】:2018-03-24 18:21:47
【问题描述】:

我正在尝试了解如何按照 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.
    }
}

但我的访问权限不正确。关于我做错了什么的任何提示?

【问题讨论】:

  • 一目了然,可以分享项目吗?插座是否正确连接?
  • 你好奥勒留!是的,我怀疑钩子有问题。我刚刚使用界面创建了一个按钮,实际上是一个 UIButton,但我看到 AKButton 派生自 UIView,我不知道如何转换,我是 swift/iOS 的新手,抱歉。我把代码放在github上:github.com/juan-barragan/mixer.

标签: swift callback audiokit


【解决方案1】:

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

【讨论】:

  • 感谢 Aurelius,我做到了:创建 UIView,我使用 IBOutlet 连接它并将类型更改为 AKButton!它编译得很好,但访问仍然很糟糕。
  • 这只是一个 Xcode 新手,只不过是把你的头撞到墙上,直到你做对了。我确实打开了您的项目,进行了这些更改(删除了缺少的导体参考)并且它运行并且没有崩溃。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多