我创建了一个AVAudioSession,其中包含 AVAudioSessionCategoryPlayAndRecordAVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryAllowBluetooth . 只要连接扬声器和麦克风的设备一切都很好 . 声音来自外部扬声器,输入通过外部麦克风录制 . 但是当我连接蓝牙扬声器(即Bose SoundLink)时,输出切换到iPhone-Speaker .

对我来说奇怪的是,蓝牙扬声器列在[[AVSession sharedInstance] availableInputs]中

使用AVAudioSessionCategoryAllowBluetoothA2DP不是一个选项,因为它总是使用iPhone-BuiltIn-Microphone .

我发现Bose SoundLink报告了一个麦克风输入,虽然它没有内置麦克风,但它提供了连接外部麦克风的可能性 . 因此,它是一个不完美的测试设备 .

无论如何,我的问题仍然是要找出新连接的设备是仅扬声器还是内置麦克风 .