我正在尝试实现录制某些东西(麦克风或振荡器或任何其他输入)的能力,我需要它在录制完成后立即执行回调方面尽可能准确,所以我认为 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,不打印“录制的剪辑”。
非常感谢!