我正在尝试在Objective-C中实现一项功能,其中用例要求用户说出免提蓝牙耳机并将其语音与音频文件混合并通过耳机插孔播放。
我让程序工作,并允许通过HFB混合麦克风和音频,或使用有线麦克风。但音频始终与麦克风源播放相同的位置。我找不到将仅音频输出覆盖到耳机插孔的方法。
我使用了以下代码,我在文档中找到了覆盖输出到扬声器的代码,但我找不到强制音频到耳机插孔的代码:
[[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];
上述代码行的另一个问题是它会覆盖输入和输出到内置扬声器和内置麦克风。
回到我的使用案例 - 我需要使用免提蓝牙来通过耳机插孔传输音频。任何想法如何实现?
答案 0 :(得分:2)
我有一个非常相似的用例,但在搜索Apple文档并直接与Apple通话后,目前无法独立设置输入和输出数据源/端口。
根据Apple的文档:
https://developer.apple.com/library/ios/qa/qa1799/_index.html
如果应用程序使用setPreferredInput:error:方法选择蓝牙HFP输入,则输出将自动更改为蓝牙HFP输出。此外,使用MPVolumeView的路由选择器选择蓝牙HFP输出将自动将输入更改为蓝牙HFP输入。因此,即使只是单独设置输入或输出,输入和输出也总是在蓝牙HFP设备上结束。
向Apple提交错误报告。如果有足够的投诉,他们可能会改变它。