iPhone14 Pro中AVFoundation捕获Raw照片报错Error -11803求助
解决AVFoundation捕获Raw图像时出现Error -11803的问题
问题场景
按照AVFoundation官方指引捕获Raw/Apple ProRaw格式照片,仅移除了缩略图相关配置,但在photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?)回调中持续收到错误:
Error Domain=AVFoundationErrorDomain Code=-11803 "Cannot Record" UserInfo={AVErrorRecordingFailureDomainKey=3, NSLocalizedDescription=Cannot Record, NSLocalizedRecoverySuggestion=Try recording again.}
设备为iPhone 14 Pro,重试后错误重复出现。
可能的原因及诊断方法
1. 磁盘空间不足(最常见)
错误子域AVErrorRecordingFailureDomainKey=3对应AVErrorRecordingDiskFull,Raw单张文件体积约20-30MB,极易触发磁盘空间不足问题。
- 诊断:
- 打开系统设置→通用→iPhone存储,确认剩余空间至少保留1GB以上;
- 代码中可通过
FileManager提前检查剩余空间:let fileManager = FileManager.default guard let attributes = try? fileManager.attributesOfFileSystem(forPath: NSHomeDirectory()) else { return } let freeSpace = attributes[.systemFreeSize] as? Int64 ?? 0 print("剩余磁盘空间:\(freeSpace / 1024 / 1024) MB")
2. Raw格式配置冲突
确保AVCapturePhotoSettings的Raw格式配置正确,无冲突项:
- 诊断:
- 确认你设置的
rawPhotoPixelFormatType属于设备支持的列表:let supportedRawFormats = photoOutput.availableRawPhotoPixelFormatTypes print("设备支持的Raw格式:\(supportedRawFormats)") // 确保你的photoSettings.rawPhotoPixelFormatType在这个列表内 - 避免同时启用Raw和压缩格式(如HEIC)的主图像,部分场景下Raw捕获需关闭
isHighResolutionCaptureEnabled。
- 确认你设置的
3. 会话或输出配置错误
检查AVCaptureSession和AVCapturePhotoOutput的配置是否合规:
- 诊断:
- 确认
photoOutput已正确添加到会话,且会话处于running状态:session.addOutput(photoOutput) session.startRunning() guard session.isRunning else { print("捕获会话启动失败") return } - 会话预设使用
.photo,避免使用视频类预设(如.hd1920x1080)。
- 确认
4. 缩略图移除方式有误
Raw捕获可能依赖部分附属元数据或缩略图数据,过度清理可能导致错误:
- 诊断:暂时恢复官方文档中的完整配置,不修改
embeddedThumbnailPhotoFormat或previewPhotoFormat参数,测试错误是否消失。如果恢复后正常,再逐步调整缩略图配置,找到兼容的移除方式。
5. 拍摄模式或系统限制
iPhone 14 Pro的Raw捕获有特定限制:
- 诊断:
- 使用系统相机App拍摄一张Raw照片,确认硬件本身支持;
- 避免在夜景、人像等特殊模式下捕获Raw,切换到默认拍照模式测试;
- 升级iOS到最新版本,排除系统bug导致的问题。
内容的提问来源于stack exchange,提问作者Stephen
相关产品推荐
相关产品推荐

