我需要使用Bluetooth外围设备录制声音,并同时使用内置扬声器播放声音。所以我认为我应该 AVAudioSession的类别为AVAudioSessionCategoryMultiRoute和.allowBluetooth选项。我运行下面的代码,但卡住了。
func initAVAudioSession() {
let session = AVAudioSession.sharedInstance()
do {
try session.setCategory(AVAudioSessionCategoryMultiRoute,
mode: AVAudioSessionModeDefault,
options: .allowBluetooth)
} catch {
print("Failed to set the audio session category and mode: \(error.localizedDescription)")
}
do {
try session.setActive(true)
} catch {
print("Error setting up audio session active: \(error.localizedDescription)")
}
}
输出控制台告诉我:
无法设置音频会话的类别和模式:操作无法完成。 (OSStatus错误-50。)
但是如果我只使用不带.allowBluetooth选项的代码,那就很好了:
session.setCategory(AVAudioSessionCategoryMultiRoute)
那是什么问题?