首页 > 解决方案 > 在 iOS AudioKit 上使用外部麦克风录制立体声

问题描述

我正在尝试将 AudioKit 集成到我们的应用程序中以进行音频处理。音频来自馈入 iOS 设备的麦克风输入,我们对 iPhone 上的集成麦克风没有任何问题。但是,我们正在尝试获得立体声输入,因此我们使用了插入照明端口的外部麦克风。麦克风是舒尔 MV88。我们得到的输入是双单声道而不是立体声。我们需要在代码中切换或更改设置以获得立体声吗?我尝试将 channelCount 设置为 2,但这并没有什么不同。

编辑:我们如何使用 AudioKit 来捕获麦克风输入的一些代码:

AKSettings.useBluetooth = true
AKSettings.bluetoothOptions = [.allowBluetoothA2DP, .allowAirPlay]

// Configure AudioKit for low latency
AKSettings.bufferLength = .medium           
AKSettings.sampleRate = 16000               

AKSettings.audioInputEnabled = true
AKSettings.channelCount = 2
AKSettings.defaultToSpeaker = false

mic = AKMicrophone()
AudioKit.output = mic

let format = [
     AVLinearPCMBitDepthKey: 32,
     AVLinearPCMIsBigEndianKey: 0,
     AVNumberOfChannelsKey: 2,
     AVFormatIDKey: 1819304813,
     AVSampleRateKey: 16000,
     AVLinearPCMIsNonInterleaved: 1,
     AVLinearPCMIsFloatKey: 1
     ]

// Install input tap
do {
     inputFile = try AVAudioFile(forWriting: inputPath, settings: format)
} catch {
     AKLog("Error with output file: \(error)")
}
mic.avAudioNode.installTap(onBus: 0,
     bufferSize: 4096,
     format: mic.avAudioNode.outputFormat(forBus: 0),
     block: { (buffer: AVAudioPCMBuffer!, _) -> Void in
          do {
               try self.inputFile.write(from: buffer)
          } catch {
               print(NSString(string: "Write failed: \(error)"))
          }
})

do {
     try AudioKit.start()
} catch {
     AKLog("AudioKit did not start")
}

标签: iosswiftiphoneaudiokit

解决方案


推荐阅读