[英]AudioKit - How to use AKAmplitudeTracker threshold callback?
AudioKit
包括一個很好的工具來跟蹤信號幅度: AKAmplitudeTracker
這個跟蹤器可以用一個 thresholdCallback 初始化,我想回調應該在達到閾值時觸發。
我正在使用MicrophoneAnalysis示例,但找不到觸發回調的方法。
這是我的代碼:
var mic: AKMicrophone!
var trackerAmplitude: AKAmplitudeTracker!
var silence: AKBooster!
AKSettings.audioInputEnabled = true
mic = AKMicrophone()
trackerAmplitude = AKAmplitudeTracker(mic, halfPowerPoint: 10, threshold: 0.01, thresholdCallback: { (success) in
print("thresholdCallback: \(success)")
})
trackerAmplitude.start()
silence = AKBooster(trackerAmplitude, gain: 0)
AudioKit.output = silence
我嘗試使用halfPowerPoint
和threshold
值,但即使使用非常低的值,我也找不到打印任何內容的方法:/
而當我打印trackerAmplitude.amplitude
,我的值高於0.01
有什么我想念的嗎?
以下代碼有效。 使用 AudioKit 4.9、Xcode 11.2、macOS Playground 進行測試。
這可能是 AudioKit 的問題,但必須通過屬性更改閾值以激活跟蹤,如下所示...
import AudioKitPlaygrounds
import AudioKit
let mic = AKMicrophone()
AKSettings.audioInputEnabled = true
let amplitudeTracker = AKAmplitudeTracker(mic, halfPowerPoint: 10, threshold: 1, thresholdCallback: { (success) in
print("thresholdCallback: \(success)")
})
AudioKit.output = amplitudeTracker
try AudioKit.start()
amplitudeTracker.threshold = 0.01 // !! MUST BE SET VIA PROPERTY
amplitudeTracker.start()
mic?.start()
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.