Запись стерео с внешним ми c на iOS AudioKit - PullRequest
2 голосов
/ 27 января 2020

Я пытаюсь интегрировать AudioKit в наше приложение для обработки аудио. Звук поступает со входа mi c, подаваемого на устройство iOS, и у нас не было проблем со встроенными микрофонами на iPhone. Тем не менее, мы пытаемся получить стерео вход и поэтому используем внешний mi c, который подключается к порту освещения. Mi c это Shure MV88. Ввод мы получаем двойной моно, а не стерео. Есть ли настройка, которую нам нужно переключить или изменить в коде, чтобы получить стерео? Я попытался установить channelCount на 2, но это не имеет значения.

РЕДАКТИРОВАТЬ: Некоторый код того, как мы используем AudioKit для захвата ввода c:

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")
}
...