iOS 7蓝牙输出不适用于AVAudioSessionCategoryPlayAndRecord

在我的应用程序中,如果iPhone连接到蓝牙耳机,则使用蓝牙播放声音。 否则使用默认扬声器。

这是我的代码

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionAllowBluetooth error:nil]; [[AVAudioSession sharedInstance] setMode:AVAudioSessionModeVoiceChat error:nil]; [[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideNone error:nil]; [[AVAudioSession sharedInstance] setActive:YES error:nil]; 

但是,当我试图使用类别setCategory:AVAudioSessionCategoryPlayAndRecord。 路由到蓝牙设备停止工作..我不知道为什么。 因为正确的,蓝牙选项应该只适用于logging或PlayAndRecord类别…

/ *只适用于AVAudioSessionCategoryRecord和AVAudioSessionCategoryPlayAndRecord * /

另外:我可以只有蓝牙输出(input仍然使用默认话筒从电话)?

UPDATE

我通过先调用setMode来改变顺序,然后是setCategory。 它首次运行应用程序(一个调用)。 当我试图再次做同样的动作,currentRoute仍然给我输出=蓝牙,但实际输出返回到默认的电话前置扬声器。

自从我发表这个问题已经有一段时间了,我忘记了问题是什么……如果我记住正确的话,这是由于另一个不断重写输出path的库。 不知何故,我固定它,并使其按我想要的方式工作。

我将代码贡献给Jawbone的AudioSessionManager库。 希望有所帮助。