AudioKit - не удается заставить AKClipRecorder работать

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

огромное спасибо!


person Dima Gimburg    schedule 17.11.2017    source источник


Ответы (1)


Вы должны вызвать clipRecorder.play () или clipRecorder.play (at :).

person dave234    schedule 17.11.2017
comment
Привет, я не вижу никакой функции запуска в API AKClipRecorder, audiokit.io/docs/Classes/AKClipRecorder .html. редактировать: о! теперь я вижу, что у него есть функция воспроизведения, что действительно сбивает с толку, я подумал, что функция воспроизведения должна начать воспроизведение AKClipRecorder, это действительно должно называться start. (пожалуйста, отредактируйте свой ответ, чтобы я его принял) - person Dima Gimburg; 17.11.2017
comment
Это немного сбивает с толку, воспроизведение подразумевает, что рекордер будет воспроизводить звук. Должен был называться старт. - person dave234; 21.11.2017