第二次初始化时,AKFFTTap停止工作

时间:2018-04-08 07:57:49

标签: audiokit

这是here中讨论的延续。

我正在为Swift中的iOS构建一个录音笔应用程序,我有一个自定义波形图形,我从AKFFTTap对象提供数据。我有一个问题,FFT在一段时间后开始生成全零。为了诊断和解决这个问题,我试图在用户开始记录时重新初始化所有节点和点击(假设这将解决问题)。以前,AudioKit已经初始化并在视图加载时启动,就是这样。

所以,现在我尝试重新分配每个录音的所有内容,除了每次重新录制(所以不是第一个,但后面的一个)之外,它都可以工作,FFT不能再次工作了。这一次它是一致的和可重复的。

所以,这就是我正在做的事情,如果有人能告诉我出错的地方,我将非常感激:

录制开始时,我正在做:

        mic = AKMicrophone() //needs to be started
        fft = AKFFTTap.init(mic) //will start when mic starts
        //now, let's define a mixer, and add the mic node to it, and initialize the recorder to it
        micMixer = AKMixer(mic)
        recorder = try AKNodeRecorder(node: micMixer)
        micBooster = AKBooster(micMixer, gain: 0) 
        AudioKit.output = micBooster
        try AudioKit.start()
        mic.start()
        micBooster.start()
        try recorder.record()

录制停止时:

//now go back deallocating stuff
recorder.stop()
micBooster.stop()
micMixer.stop()
mic.stop()
//now set player file to recorder file, since I want to play it later
do {
    if let file = recorder.audioFile {
        player = try AKAudioPlayer(file: file, looping: false, lazyBuffering: false, completionHandler: playingEnded)
        try AudioKit.stop()
    } else {
        //handle no file error
    }
}
catch {
    //handle error
}

那么,任何人都可以帮我弄清楚为什么FFT第二次无效?

谢谢!

0 个答案:

没有答案
相关问题