以下代码适用于我的iPhone 5,这意味着它正确"读取"麦克风。
let input = audioEngine.inputNode
let mixer = AVAudioMixerNode()
audioEngine.attach(mixer)
let format = AVAudioFormat(commonFormat: AVAudioCommonFormat.pcmFormatFloat32, sampleRate: SAMPLE_RATE, channels: 1, interleaved: false)
audioEngine.connect(input, to: mixer, format: input.inputFormat(forBus: 0))
mixer.installTap(onBus: 0, bufferSize: 2048, format: format) {
(buffer: AVAudioPCMBuffer!, time: AVAudioTime!) -> Void in ... }
不幸的是,在模拟器中使用应用程序时,它只输出0.0个样本。麦克风通常工作(在模拟器中测试Siri),但在我的应用程序中无法正确获取样本。
以某种方式可以以所需的采样率从模拟器中的麦克风读取样本吗?我需要将样本@ 16khz发送到服务器,因此没有选择以44100hz进行采样。