创建一个跟踪麦克风音频的Swift-iOS项目。目前正在使用AudioKit 3.0框架。我在Xcode模拟器中使用了以下代码,但是当我在设备上运行它时,它似乎没有正确读取麦克风信号。
// Prepare Microphone
let mic = AKMicrophone()
// Connect Microphone to High Pass Filter
let mixer = AKMixer(mic)
let highPassFilter = AKHighPassFilter(mic)
// Set Parameters of Hi Pass filter
highPassFilter.cutoffFrequency = 7000 // Hz
highPassFilter.resonance = 0 // dB
let tracker = AKFrequencyTracker(highPassFilter, minimumFrequency: 7000, maximumFrequency: 8000)
highPassFilter.play()
audioKit.audioOutput = tracker
audioKit.start()
AKPlaygroundLoop(every: 0.1) {
let freq = tracker.frequency
print(freq)
}
答案 0 :(得分:4)
我在AudioKit 3上使用此代码并且工作正常:
let mic = AKMicrophone()
amplitudeTracker = AKAmplitudeTracker(mic)
AKSettings.audioInputEnabled = true
AudioKit.output = amplitudeTracker
AudioKit.start()
mic.start()
amplitudeTracker.start()
这是AKAmplitudeTracker,但情况与您几乎相同。试试AKSettings.audioInputEnabled = true
希望这有帮助。
答案 1 :(得分:2)
我从AudioKit背后的开发中得到了答案。 AudioKit 3.0中存在一个错误,在发行版中没有修复。要解决这个问题 。将AKManager.swift的第41行更改为AVAudioSessionCategoryPlayAndRecord,然后创建一个新的框架以添加到您的项目中。
这解决了麦克风节点的问题。