iphone – Objective-c从蓝牙HFP重新路由音频输入,将音频与耳机插孔混合

我正在尝试在Objective-C中实现一个功能,其中用例要求用户说出免提蓝牙耳机并将其语音与音频文件混合并通过耳机插孔播放.

我让程序工作,并允许通过HFB混合麦克风和音频,或使用有线麦克风.但音频始终与麦克风源播放相同的位置.我找不到只覆盖音频输出到耳机插孔的方法.

我使用下面的代码,我在文档中找到了覆盖输出到扬声器的代码,但我找不到强制音频到耳机插孔的代码:

[[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];

上述代码行的另一个问题是它覆盖了内置扬声器和内置麦克风的输入和输出.

回到我的使用案例 – 我需要使用免提蓝牙来通过耳机插孔发出声音.有什么想法可以实现吗?

最佳答案 我有一个非常相似的用例,但在搜索Apple文档并直接与Apple交谈后,目前无法独立设置输入和输出数据源/端口.

根据Apple的文档:

https://developer.apple.com/library/ios/qa/qa1799/_index.html

如果应用程序使用setPreferredInput:error:方法选择蓝牙HFP输入,则输出将自动更改为蓝牙HFP输出.此外,使用MPVolumeView的路由选择器选择蓝牙HFP输出将自动将输入更改为蓝牙HFP输入.因此,即使仅单独设置输入或输出,输入和输出也将始终在蓝牙HFP设备上结束.

向Apple提交错误报告.如果有足够的投诉,他们可能会改变它.

点赞