我目前正在按如下方式初始化我的AVAudioSession:
NSError *myError = nil;
AVAudioSession* avSession = [AVAudioSession sharedInstance];
[avSession setCategory: AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker|AVAudioSessionCategoryOptionAllowBluetooth error: &myError];
这似乎工作正常。如果我刚开始使用设备,我的输出就是我的扬声器。如果我插入有线耳机,它会将音频重新路由到耳机。如果我拔掉它,它会重新路由到主扬声器。音频从来没有从接收器中出来。这是我正在寻找的正确行为。
如果我使用我的节拍耳机(蓝牙)代替有线耳机,这也可以。
如果我在启动应用程序之前插入节拍耳机,就会出现问题。应用程序正确选择它们,一切都很好但是如果我关闭或断开蓝牙耳机,音频将被路由回接收器而不是扬声器。
我应该做些什么,所以它会尊重我的AVAudioSessionCategoryOptionDefaultToSpeaker旗帜吗?
答案 0 :(得分:0)
显然这只是旧版iOS的限制/怪癖,但从iOS 10开始,我只需要使用AVAudioSessionCategoryOptionAllowBluetoothA2DP标志。