AVAudioSession setCategory .allowBluetooth导致崩溃

问题描述 投票:0回答:1

我正在编写一个使用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帖子,却发现没有什么可以解决我的问题。

ios swift avaudiosession
1个回答
0
投票

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

这是因为.defaultToSpeaker选项只能与.defaultToSpeaker类别一起使用:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.