[英]Implementing microphone analysis with Audiokit v5
我需要運行我的應用程序,它在 Xcode 12 中使用 AudioKit 作為其庫之一,以便我可以為即將發布的 iOS 14 版本做好准備,因為 Xcode 12 包含我需要采用的所有類更改。
然而,4.10.1 的當前穩定版本不能在 Xcode 12 中編譯。然后我嘗試安裝最新的 v5-develop 版本 5.0.b1 並成功編譯,但是 API 經歷了重大變化 -> 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!")
}
}
然后我像這樣訪問幅度和頻率:
timer?.setEventHandler(handler: {
let currentAmp = self.tracker.amplitude
let currentFreq = self.tracker.frequency
// ... some processing here
}
在新版本中,我在 Xcode 中挖掘並發現並嘗試讓AKMicrophoneTrackerEngine
工作,我讓它編譯並運行:
let engine = AKMicrophoneTrackerEngine()
func setup(completion: @escaping TaskHandler) {
engine.start()
completion(true, nil)
}
// ..later in code
timer?.setEventHandler(handler: {
let currentAmp = self.engine.amplitude
let currentFreq = self.engine.frequency
// ... some processing here
}
然而,頻率(以及可能的幅度)略微偏離。 使用 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 = ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.