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

标签 ios swift audiokit akamplitudetracker

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

有什么我想念的吗?

最佳答案

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

关于ios - AudioKit - 如何使用 AKAmplitudeTracker 阈值回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59247698/

相关文章:

Swift - 裁剪允许编辑*外部*的图像

ios - 如何在传递给另一个类的 WKWebView 上使用 didFinish 导航

ios - Swift 4 JSONDecoder 解码协议(protocol)类型

swift - AKAudioPlayer 节点在到达文件/缓冲区末尾之前停止后是否会应用 10 毫秒的淡出?

ios - AudioKit:处理 iPhone 麦克风输入并使处理后的输出可用作麦克风输入以用于 VOIP 框架

ios - 如何在选项卡栏 Controller 内的选项卡栏上方切换工具栏的存在?

ios - Keychain 中的 SecItemCopyMatching 和 kSecAttrAccessible

ios - audiokit:同时播放两个振荡器

ios - 无法加载从带有标识符的包中的 nib 引用的图像

ios - 运行时 Storyboard中设置的 UIButton 标题丢失