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

2024-01-02

这是讨论的延续here https://stackoverflow.com/questions/49705736/akffttap-stops-generating-data-after-some-time.

我正在 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 第二次不起作用吗?

Thanks!


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第二次初始化时 AKFFTTap 停止工作 的相关文章

随机推荐