AudioKit-如何使用AKAmplitudeTracker阈值回调?

问题描述 投票:2回答:1

[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

我尝试使用halfPowerPointthreshold值,但是即使值很低,我也找不到打印任何内容的方法:/

而当我打印trackerAmplitude.amplitude时,我得到的值高于0.01

我有什么想念的吗?

ios swift audiokit akamplitudetracker
1个回答
0
投票

以下代码有效。经过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
© www.soinside.com 2019 - 2024. All rights reserved.