我们编写在后台录制音频的应用程序。我们将AVAudioSession与AVAudioSessionCategoryPlayAndRecord类和AVAudioSessionCategoryOptionAllowBluetooth选项一起使用:
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayAndRecord withOptions: AVAudioSessionCategoryOptionMixWithOthers | AVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryOptionAllowBluetooth error:&error];
我们注意到了一个奇怪的问题 - 当iPhone连接到多媒体车载蓝牙系统并且我们的应用程序运行时,显示从设备到其自身的电话呼叫(在所有设备连接到蓝牙系统期间呼叫继续)。当我们关闭应用程序时 - 通话结束,当我们再次打开应用程序时 - 呼叫开始等等 此问题在所有多媒体蓝牙系统上重现。我们该如何解决?感谢
答案 0 :(得分:0)
认为您需要添加AVAudioSessionCategoryOptionAllowBluetoothA2DP而不是旧的HFP配置文件。该呼叫用于使较旧的蓝牙设备工作。
在iOS 10中,Apple添加了选项AVAudioSessionCategoryOptionAllowBluetoothA2DP。他们还改变了AudioSessionCategoryOptionAllowBluetooth的含义,只允许使用HFP蓝牙配置文件进行输出,这是您获得低质量音频输出的地方。
如果您使用此新选项代替代码段中的AudioSessionCategoryOptionAllowBluetooth选项,它将允许高质量输出但不允许低质量音频输出。
这里是选项的在线文档,但不幸的是,没有关于新的iOS 10选项的在线描述。您可以在AVAudioSession.h中的代码内文档中查看更多详细信息 https://developer.apple.com/reference/avfoundation/avaudiosessioncategoryoptions?language=objc
的信息