如何解决使用Audiokit v5实施麦克风分析
我需要运行在Xcode 12中使用AudioKit作为其库之一的应用程序,以便为即将发布的iOS 14版本做好准备,因为Xcode 12包含了我需要采用的所有类更改。 / p>
但是,当前的4.10.1稳定版本无法在Xcode 12中进行编译。我随后尝试安装最新的v5-develop版本5.0.b1,并且编译成功,但是API进行了重大更改-> {{1 }}例如已弃用。我找不到有关这些更改的任何文档。我认为这是因为它仍处于测试阶段。
我以前使用了从他们的麦克风分析示例中获取的这段代码:
AudioKit.output
然后我像这样访问振幅和频率:
func setup(completion: @escaping TaskHandler) {
// Setup the microphone
AKSettings.audioInputEnabled = true
mic = AKMicrophone()
tracker = AKFrequencyTracker(mic)
silence = AKBooster(tracker,gain: 0)
// Start the audio engine
AudioKit.output = silence
do {
try AudioKit.start()
completion(true,nil)
} catch {
completion(false,ErrorMessage.microphoneFailedToStart)
AKLog("AudioKit did not start!")
}
}
在新版本中,我在Xcode中进行了挖掘,发现并试图使timer?.setEventHandler(handler: {
let currentAmp = self.tracker.amplitude
let currentFreq = self.tracker.frequency
// ... some processing here
}
正常工作,然后我将其编译并运行:
AKMicrophoneTrackerEngine
但是,频率(可能还有幅度)略有偏离。使用4.10.1播放1000Hz的测试音会产生1000的输出,但是我的新方法会产生大约918的值。
任何人都可以引导我阅读一些文档或建议我如何使用新的API来实现相同的功能吗?
谢谢。
解决方法
https://github.com/AudioKit/AudioKit/issues/2267应该通过更新到AudioKit 4.11.1 pod 'AudioKit','~> 4.11.1'
来解决。此版本可在Xcode 12中成功编译。您还需要将所有AudioKit
实例替换为AKManager
,例如:AudioKit.output = ...
替换为AKManager.output = ...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。