我正在使用WebRTC
及其使用AVCaptureSession
。它可以正常工作几次,但有时会因此异常而崩溃。
最佳答案
我最近也有这个问题。在我的代码中,我保留了AVCaptureOutput的一个实例,并添加和删除了它。尝试将相同的AVCaptureOutput实例再次添加到相同的捕获 session 时,出现此错误。
这就是我解决的方法:
private var _captureOutput: AVCaptureOutput?
var captureOutput: AVCaptureOutput {
guard let captureOutput = _captureOutput else {
let photoOutput = AVCapturePhotoOutput()
photoOutput.isHighResolutionCaptureEnabled = true
_captureOutput = photoOutput
return photoOutput
}
return captureOutput
}
必要时将实例初始化一次,然后将其删除,也将其无效。captureSession.outputs.forEach { [weak self] output in
self?.captureSession.removeOutput(output)
self?._captureOutput = nil
}