AVAudioSession_iOS.mm:2382 设置类别失败,类别设置为.record时错误:-50

问题描述 投票:0回答:2
do {
        // Activate the session.
        audioSession = AVAudioSession.sharedInstance()
        guard let audioSession = audioSession else { return }
        try audioSession.setActive(false)
        try audioSession.setCategory(.playAndRecord, mode: .spokenAudio)    //forced
        try audioSession.setActive(true, options: .notifyOthersOnDeactivation)

        // Start the processing pipeline.
        try audioEngine.start()
        Task { @MainActor in
            isRecording.wrappedValue = true
        }
    } catch {
        handleError(withMessage: error.localizedDescription)
    }

由于某种原因,audioSession 只允许用于 .playAndRecord。相反,如果我将其设置为 .record,我会收到此错误

AVAudioSession_iOS.mm:2382 设置类别失败,错误:-50

我只是录音,我的应用程序不播放音频。目前这算是一个解决方法。但这正常吗?

avaudiosession avaudiorecorder avaudioengine
2个回答
2
投票

.spokenAudio
模式意味着您将产生音频,因此
AVAudioSession.setCategory
返回 -50 =
AVAudioSessionErrorCodeBadParam
并不是不合理。

将模式设置为

.default


0
投票

我通过在配置会话之前将会话设置为活动状态来解决我的问题。

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