我发现examples对使用AVAudioNode.installTap
播放音乐进行FFT分析,但我想知道如何做到这一点,但是离线(一次关闭)在文件上。
我尝试将1024设置为maximumFrameCount
:
let maxNumberOfFrames: AVAudioFrameCount = 1024;
try engine.enableManualRenderingMode(.offline, format: format, maximumFrameCount: maxNumberOfFrames)
但是渲染的数量似乎很小(比如我用内置音频分析功能的JavaScript中的1200代替了5000)。
我想念什么吗?我是否应该在没有脱机渲染的情况下直接对文件执行FFT?怎么样?
答案 0 :(得分:0)
假设您只想执行分析而不希望修改声音缓冲区以进行播放,我建议您查看AVAudioSinkNode
。您可能会发现使用engine.mainMixerNode.installBus()
的旧解决方案,但这对于快速FFT而言效率不高,因为它不是实时的实时。