4

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

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

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

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

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

回到我的用例 - 我需要使用免提蓝牙对从耳机插孔输出的音频进行配音。任何想法如何实现?

4

1 回答 1

3

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

根据 Apple 的文档:

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

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

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

于 2014-02-09T19:11:03.693 回答