我已经知道如何将音频播放到我的耳机,但它的音频来自我的耳机麦克风,而不是闪电端口输入 . How do I programmatically find the Lightning Port audio input, instead of getting audio via the headphone mic?
这是我到目前为止所尝试的内容:
self.audioEngine = AVAudioEngine()
let input = self.audioEngine.inputNode
let mixer = self.audioEngine.mainMixerNode
let output = self.audioEngine.outputNode
self.audioEngine.inputNode.installTapOnBus(0, bufferSize: 128, format: input.inputFormatForBus(0)) { (buffer, time) -> Void in
//
}
self.audioEngine.connect(input, to: mixer, format: input.inputFormatForBus(0))
self.audioEngine.connect(mixer, to: output, format: mixer.inputFormatForBus(0))
self.audioEngine.prepare()
self.audioEngine.startAndReturnError(nil)
当我运行它时,我听到了音频 - 但它来自我的耳机麦克风,而不是吉他 . 如何连接来自闪电端口的音频?
为了快速说明,这是我正在使用的硬件:
2 回答
要连接到特定音频输入,需要使用
setPreferredInput:error:
方法配置sharedInstance
AVAudioSession
.以下是在Objective-C中完成的操作:
要了解更多信息,请查看:
AVAudioSession documentation
Technical Q&A QA1799: AVAudioSession - Microphone Selection
iOS通常会从插入的最后一个端口路由音频输入和输出 . 由于您插入了耳机,这就是它用于录制的端口 . 拔下耳机,插上闪电,它将使用该路径进行录音和播放 .