【问题标题】:AudioKit - How to use AKAmplitudeTracker threshold callback?AudioKit - 如何使用 AKAmplitudeTracker 阈值回调?
【发布时间】:2019-12-09 11:15:16
【问题描述】:

AudioKit 包含一个跟踪信号幅度的好工具:AKAmplitudeTracker

这个tracker可以用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】:

    以下代码有效。使用 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多