更新:刚刚创建了一个新的专用项目来测试麦克风跟踪。同样的问题,顺便说一句,在所有情况下,我都会看到以下错误记录。
2020-01-01 16:14:30.796714-0800 AudioKit_mic_tracking [36792:18467342] [plugin] AddInstanceForFactory:没有为id注册的工厂2020-01-01 16:14:30.823727-0800AudioKit_mic_tracking [36792:18467342] HALC_ShellDriverPlugIn :: Open:无法获得指向Open例程的指针
我已经按照说明仔细地将AudioKit 4.9.3框架安装到了我的macOS应用中,无论是否进行沙箱测试,都会出现相同的错误。我尝试安装预构建的框架并从源代码构建AudioKit,并使用了可以在网上找到的用于麦克风跟踪的所有有据可查的方法。无论我使用AKMicrophoneTracker()还是AKFrequencyTracker(),我似乎都无法检测到麦克风的振幅或频率。
配置:
-2015年末的iMac-macOS卡塔利娜10.15.2-Xcode 11.3-适用于macOS的最新AudioKit 4.9.3-尝试禁用和启用沙箱(已选中“音频输入”功能)。
我使用的最新方法:
AudioKit.output = AKMixer()
do {
try AudioKit.start()
} catch {
print("AudioKit start error")
}
let tracker = AKMicrophoneTracker()
tracker.start()
Timer.scheduledTimer(withTimeInterval: 0.5, repeats: true, block: { _ in
print(String(format:"%.3f", tracker.amplitude), tracker.frequency)
})
显示:0.000 100.00.000 100.00.000 100.00.000 100.00.000 100.0。。。
即使首选项窗格显示内置仪表上的麦克风活动,麦克风输入也不会改变。
问题是,从macOS 10.14开始,将类似的安全性应用于希望使用麦克风和iOS中使用的摄像头的应用程序。应用必须在NSMicrophoneUsageDescription
中具有info.plist
属性。这将触发操作系统提示用户允许使用该设备(麦克风)。没有该属性,将出现无提示,AudioKit将无提示失败。
[AKMicrophoneTracker()抛出某种安全异常可能会更好,以帮助将来诊断类似问题。