带有离线渲染的FFT(installTap)

时间:2019-03-16 11:19:47

标签: ios swift fft core-audio avaudioengine

我发现examples对使用AVAudioNode.installTap播放音乐进行FFT分析,但我想知道如何做到这一点,但是离线(一次关闭)在文件上。

我尝试将1024设置为maximumFrameCount

let maxNumberOfFrames: AVAudioFrameCount = 1024;
try engine.enableManualRenderingMode(.offline, format: format, maximumFrameCount: maxNumberOfFrames)

但是渲染的数量似乎很小(比如我用内置音频分析功能的JavaScript中的1200代替了5000)。

我想念什么吗?我是否应该在没有脱机渲染的情况下直接对文件执行FFT?怎么样?

1 个答案:

答案 0 :(得分:0)

假设您只想执行分析而不希望修改声音缓冲区以进行播放,我建议您查看AVAudioSinkNode。您可能会发现使用engine.mainMixerNode.installBus()的旧解决方案,但这对于快速FFT而言效率不高,因为它不是实时的实时