Я пытаюсь добиться возможности записи чего-либо (микрофон, осциллятор или любой другой вход), мне нужно, чтобы он был максимально точным с точки зрения выполнения обратного вызова сразу после завершения записи, поэтому я подумал, что 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 распечатываются, «записанный клип» не печатается.
огромное спасибо!