gpt4 book ai didi

ios - 如何将 AVAudioEngine 连接到 Lightning 端口音频输入?

转载 作者:可可西里 更新时间:2023-11-01 03:31:10 24 4
gpt4 key购买 nike

我想将我的电吉他连接到我的应用程序。我有硬件(Line6 Sonic Port)可以将吉他的音频传输到我的 iPhone。我已经想出如何让我的耳机播放音频,但音频来 self 的耳机麦克风,而不是 Lightning 端口输入。 如何以编程方式找到闪电端口音频输入,而不是通过耳机麦克风获取音频?

这是我到目前为止尝试过的:

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)

当我运行它时,我听到了音频 - 但它来 self 的耳机麦克风,而不是吉他。如何连接到来自闪电端口的音频?

为了快速说明,这是我正在使用的硬件: Line6 Sonic Port

最佳答案

要连接到特定的音频输入,您需要使用 setPreferredInput:error: 方法配置 AVAudioSessionsharedInstance

这是在 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];
}
}];

要了解更多信息,请查看:

关于ios - 如何将 AVAudioEngine 连接到 Lightning 端口音频输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28081565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com