bry*_*ark 7 audio core-audio ios avaudioengine
我想把我的电吉他连接到我的应用程序.我有硬件(Line6 Sonic Port)将吉他的音频传递到我的iPhone.我已经想出如何将音频播放到我的耳机,但它的音频来自我的耳机麦克风,而不是闪电端口输入.如何以编程方式查找Lightning Port音频输入,而不是通过耳机麦克风获取音频?
这是我到目前为止所尝试的:
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)
Run Code Online (Sandbox Code Playgroud)
当我跑这个时,我听到了音频 - 但它来自我的耳机麦克风,而不是吉他.如何连接来自闪电端口的音频?
为了快速说明,这是我正在使用的硬件:

要连接到特定的音频输入,你需要配置sharedInstance的AVAudioSession,通过使用该setPreferredInput:error:方法。
以下是在 Objective-C 中的实现方式:
AVAudioSession *sharedSession = [AVAudioSession sharedInstance];
NSArray *availableInputs = [sharedSession availableInputs];
[availableInputs enumerateObjectsUsingBlock:^(AVAudioSessionPortDescription *portDescription, NSUInteger idx, BOOL *stop) {
if (portDescription.portType == AVAudioSessionPortUSBAudio) {
[sharedSession setPreferredInput:portDescription error:nil];
}
}];
Run Code Online (Sandbox Code Playgroud)
要了解更多信息,请查看:
| 归档时间: |
|
| 查看次数: |
1752 次 |
| 最近记录: |