连接到汽车蓝牙系统会导致从设备自拨电话

时间:2016-09-12 12:36:52

标签: ios iphone bluetooth

我们编写在后台录制音频的应用程序。我们将AVAudioSession与AVAudioSessionCategoryPlayAndRecord类和AVAudioSessionCategoryOptionAllowBluetooth选项一起使用:

AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayAndRecord withOptions: AVAudioSessionCategoryOptionMixWithOthers | AVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryOptionAllowBluetooth  error:&error];

我们注意到了一个奇怪的问题 - 当iPhone连接到多媒体车载蓝牙系统并且我们的应用程序运行时,显示从设备到其自身的电话呼叫(在所有设备连接到蓝牙系统期间呼叫继续)。当我们关闭应用程序时 - 通话结束,当我们再次打开应用程序时 - 呼叫开始等等 此问题在所有多媒体蓝牙系统上重现。我们该如何解决?感谢

1 个答案:

答案 0 :(得分:0)

认为您需要添加AVAudioSessionCategoryOptionAllowBluetoothA2DP而不是旧的HFP配置文件。该呼叫用于使较旧的蓝牙设备工作。

在iOS 10中,Apple添加了选项AVAudioSessionCategoryOptionAllowBluetoothA2DP。他们还改变了AudioSessionCategoryOptionAllowBluetooth的含义,只允许使用HFP蓝牙配置文件进行输出,这是您获得低质量音频输出的地方。

如果您使用此新选项代替代码段中的AudioSessionCategoryOptionAllowBluetooth选项,它将允许高质量输出但不允许低质量音频输出。

这里是选项的在线文档,但不幸的是,没有关于新的iOS 10选项的在线描述。您可以在AVAudioSession.h中的代码内文档中查看更多详细信息 https://developer.apple.com/reference/avfoundation/avaudiosessioncategoryoptions?language=objc

来自Keep bluetooth sound when initializing AVAudioSession

的信息