AVAudioSession setCategory .allowBluetooth导致崩溃

时间:2020-03-08 22:45:25

标签: ios swift avaudiosession

我正在编写一个使用AVAudioSession记录用户音频的应用程序。当我不向选项中添加蓝牙时,所有功能都运行良好,但我也希望能够使用AirPods进行录制。当我添加.allowBluetooth选项时,它会导致崩溃,并且不再起作用。

        do {
            let session = AVAudioSession.sharedInstance()
            try session.setCategory(.record, mode: .default, options: [.defaultToSpeaker, .allowBluetooth])
            try session.setActive(true)
        } catch let error as NSError {
            print(error.localizedDescription)
            return
        }

对此有何建议?我浏览了许多与该主题相关的SO帖子,却发现没有什么可以解决我的问题。

1 个答案:

答案 0 :(得分:2)

您将得到错误代码-50,它指示无效的参数。

这是因为enter link description here选项只能与playAndRecord类别一起使用:

仅当使用playAndRecord类别时,您才能设置此选项。它用于修改类别的路由行为,以便在不使用其他附件(例如耳机)的情况下,始终将音频路由到扬声器而不是接收器。

因此,请删除此选项或使用playAndRecord类别。

相关问题