蓝牙耳机导致iOS上的路由问题

时间:2016-12-29 01:23:25

标签: ios iphone bluetooth avaudiosession

我目前正在按如下方式初始化我的AVAudioSession:

NSError *myError = nil;
AVAudioSession* avSession = [AVAudioSession sharedInstance];    
[avSession setCategory: AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker|AVAudioSessionCategoryOptionAllowBluetooth error: &myError];

这似乎工作正常。如果我刚开始使用设备,我的输出就是我的扬声器。如果我插入有线耳机,它会将音频重新路由到耳机。如果我拔掉它,它会重新路由到主扬声器。音频从来没有从接收器中出来。这是我正在寻找的正确行为。

如果我使用我的节拍耳机(蓝牙)代替有线耳机,这也可以。

如果我在启动应用程序之前插入节拍耳机,就会出现问题。应用程序正确选择它们,一切都很好但是如果我关闭或断开蓝牙耳机,音频将被路由回接收器而不是扬声器。

我应该做些什么,所以它会尊重我的AVAudioSessionCategoryOptionDefaultToSpeaker旗帜吗?

1 个答案:

答案 0 :(得分:0)

显然这只是旧版iOS的限制/怪癖,但从iOS 10开始,我只需要使用AVAudioSessionCategoryOptionAllowBluetoothA2DP标志。

来源:Keep bluetooth sound when initializing AVAudioSession