【发布时间】:2018-04-15 18:35:31
【问题描述】:
我刚刚更新到最新的 AudioKit 版本 4.2.3 和 Swift 4.1 我在 audiokit.start() 处发生了崩溃,我无法破译。如果您需要更多错误代码,请lmk。
AURemoteIO::IOThread (21): EXC_BAD_ACCESS(代码=1,地址=0x100900000)
仅供参考,我还使用 AVAudioRecorder 将麦克风输入记录到文件中,并稍后在 ViewController 中使用 AVKit AVAudioPlayer 播放它。但是,由于我在更新之前没有遇到此崩溃,我不认为这些因素是负责任的 - 但与跟踪器输入有关。
import UIKit
import Speech
import AudioKit
class RecordVoiceViewController: UIViewController {
var tracker: AKFrequencyTracker!
var silence: AKBooster!
var mic: AKMicrophone!
let noteFrequencies = [16.35, 17.32, 18.35, 19.45, 20.6, 21.83, 23.12, 24.5, 25.96, 27.5, 29.14, 30.87]
let noteNamesWithSharps = ["C", "C♯","D","D♯","E","F","F♯","G","G♯","A","A♯","B"]
let noteNamesWithFlats = ["C", "D♭","D","E♭","E","F","G♭","G","A♭","A","B♭","B"]
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
AKSettings.audioInputEnabled = true
mic = AKMicrophone()
tracker = AKFrequencyTracker.init(mic, hopSize: 200, peakCount: 2000)
silence = AKBooster(tracker, gain: 0)
}
func startAudioKit(){
AudioKit.output = self.silence
do {
try AudioKit.start()
} catch {
AKLog("Something went wrong.")
}
}
}
有趣的是,当我在没有 hopSize 和 peakCount 的情况下初始化跟踪器时,例如:
tracker = AKFrequencyTracker.init(mic)
它不会崩溃,但它也不会返回正确的频率。我非常感谢任何帮助。谢谢!!!
【问题讨论】:
-
经过这里测试,我没有发现任何问题,如果你想分享你的项目,甚至私下分享,我会仔细看看。
-
感谢@AureliusProchazka!给你发了一封电子邮件。我很感激。
标签: swift audiokit frequency-analysis