AudioKit v5 使用多个 Tap
Posted
技术标签:
【中文标题】AudioKit v5 使用多个 Tap【英文标题】:AudioKit v5 using multiple Taps 【发布时间】:2021-08-26 19:29:02 【问题描述】:我希望能够从我的 AudioPlayer 中获取幅度和频谱数据,但由于每个节点只能点击一次,我不确定如何在 AudioKit 5 中实现这一点
player = AudioPlayer(file: fileToPlay)!
fftTap = FFTTap(player, bufferSize: 4096, handler: _ in )
ampTap = AmplitudeTap(player)
ampTap.analysisMode = .peak
do
try engine.start()
fftTap.start() // installs this tap on the player bus
ampTracker.start() // removes the fftTap and installs this one
catch
print("Could not start engine: %\(error)")
return
【问题讨论】:
【参考方案1】:这实际上很简单,只需创建多个节点,它们只是数据的副本,然后分别点击它们。应该这样做:
player = AudioPlayer(file: fileToPlay)!
let playerCopy = Mixer(player)
fftTap = FFTTap(player, bufferSize: 4096, handler: _ in )
ampTap = AmplitudeTap(playerCopy)
...
【讨论】:
工作得很好,谢谢!我一开始就把它搞砸了,因为我还有engine.output = player
。不得不将其更改为engine.output = playerCopy
以上是关于AudioKit v5 使用多个 Tap的主要内容,如果未能解决你的问题,请参考以下文章
超级表格清单 Tap Forms 5 v5.2.3 MacOSX