ios – 如何将AVAudioEngine连接到Lightning Port音频输入?

ios – 如何将AVAudioEngine连接到Lightning Port音频输入?,第1张

概述我想把我的电吉他连接到我的应用程序.我有硬件(Line6 Sonic Port)将吉他的音频传递到我的iPhone.我已经想出如何将音频播放到我的耳机,但它的音频来自我的耳机麦克风,而不是闪电端口输入.如何以编程方式查找Lightning Port音频输入,而不是通过耳机麦克风获取音频? 这是我到目前为止所尝试的: self.audioEngine = AVAudioEngine()let i 我想把我的电吉他连接到我的应用程序.我有硬件(line6 Sonic Port)将吉他的音频传递到我的iPhone.我已经想出如何将音频播放到我的耳机,但它的音频来自我的耳机麦克风,而不是闪电端口输入.如何以编程方式查找lightning Port音频输入,而不是通过耳机麦克风获取音频?

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

self.audioEngine = AVAudioEngine()let input = self.audioEngine.inputNodelet mixer = self.audioEngine.mainmixerNodelet output = self.audioEngine.outputNodeself.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)

当我跑这个时,我听到了音频 – 但它来自我的耳机麦克风,而不是吉他.如何连接来自闪电端口的音频?

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

解决方法 要连接到特定的音频输入,需要使用setPreferredinput:error:方法配置AVAudioSession的sharedInstance.

以下是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];    }}];

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

> AVAudioSession documentation
> Technical Q&A QA1799: AVAudioSession – Microphone Selection

总结

以上是内存溢出为你收集整理的ios – 如何将AVAudioEngine连接到Lightning Port音频输入?全部内容,希望文章能够帮你解决ios – 如何将AVAudioEngine连接到Lightning Port音频输入?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1107601.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存