我正在尝试实现录制某些东西(麦克风或振荡器或任何其他输入)的能力,我需要它在录制完成后立即执行回调方面尽可能准确,因此我认为ClipRecorder可以在这里为我提供帮助。这段代码进入一个简单的视图控制器的viewDidLoad函数中,该代码执行并结束,但是剪辑记录器的回调从未执行。

您能告诉我我做错了什么吗?我对AudioKit非常陌生,因此可能是我对事情的怀念。这是代码:

AKSettings.bufferLength = .shortest
AKSettings.defaultToSpeaker = true
try! AKSettings.setSession(category: .playAndRecord)

let oscillator = AKOscillator()
let oscMixer = AKMixer(oscillator)
AudioKit.output = oscMixer
AudioKit.start()

oscillator.start()

let clipRecorder = AKClipRecorder(node: oscMixer)

do{
    AKLog("1")
    try clipRecorder.recordClip(time: 0, duration: 2, tap: nil, completion: { url, something, err in
        AKLog("recorded clip")
        oscillator.stop()
    })
    AKLog("2")
} catch let error as ClipRecordingError {
    print("\(String(describing: error.errorDescription))")
} catch {
    print("something general")
}

日志1,2被打印,“记录剪辑”不被打印。

非常感谢!

最佳答案

您必须调用clipRecorder.play()或clipRecorder.play(at :)。

关于ios - AudioKit-无法使AKClipRecorder工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47341502/

10-09 01:35