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
我只是录音,我的应用程序不播放音频。目前这算是一个解决方法。但这正常吗?
.spokenAudio
模式意味着您将产生音频,因此 AVAudioSession.setCategory
返回 -50 = AVAudioSessionErrorCodeBadParam
并不是不合理。
将模式设置为
.default
。
我通过在配置会话之前将会话设置为活动状态来解决我的问题。