[英]Generation of thumbnail fails with error AVFoundationErrorDomain Code=-11800
[英]iOS 12 Depth Data Capture error code 11800
var captureSession = AVCaptureSession()
override func viewDidLoad() {
super.viewDidLoad()
AVCaptureDevice.requestAccess(for: .video) { (succ) in
print("\(succ) video")
}
}
@IBAction func Shoot(_ sender: Any) {
if captureSession.isRunning == true {
captureSession.stopRunning()
}
let cam = AVCaptureDevice.DiscoverySession.init(deviceTypes: [.builtInDualCamera], mediaType: AVMediaType.video, position: .back)
captureSession = AVCaptureSession()
captureSession.beginConfiguration()
do {
let input = try AVCaptureDeviceInput(device: cam.devices.first!)
captureSession.addInput(input)
} catch {
print(error)
}
captureSession.sessionPreset = .photo
let output = AVCapturePhotoOutput()
captureSession.addOutput(output)
captureSession.commitConfiguration()
output.isDepthDataDeliveryEnabled = true
output.isHighResolutionCaptureEnabled = true
captureSession.startRunning()
}
@IBAction func Go(_ sender: Any) {
let output = captureSession.outputs.first as! AVCapturePhotoOutput
output.capturePhoto(with: photoSettingsCreator(), delegate: self)
}
func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) {
if error != nil {
print(error!)
}
let dat = photo.fileDataRepresentation()!
let img = UIImage(data: dat)
print(photo.depthData!)
}
func photoSettingsCreator() -> AVCapturePhotoSettings {
let settings = AVCapturePhotoSettings(format: [AVVideoCodecKey : AVVideoCodecType.hevc, AVVideoCompressionPropertiesKey : [AVVideoQualityKey : 1.0]])
settings.isDepthDataDeliveryEnabled = true
settings.isHighResolutionPhotoEnabled = true
settings.isAutoStillImageStabilizationEnabled = true
settings.flashMode = .off
return settings
}
直到我在手機上安裝了iOS 12 Beta為止,它都可以正常捕獲深度數據,但是現在出現錯誤:
錯誤域= AVFoundationErrorDomain代碼= -11800“操作無法完成” UserInfo = {NSLocalizedFailureReason =發生未知錯誤(-16800),NSLocalizedDescription =操作無法完成,NSUnderlyingError = 0x283094510 {錯誤域= NSOSStatusErrorDomain代碼=- 16800“(null)”}}
我不知道此錯誤來自何處。 錯誤將打印在照片輸出的if error
部分。
可能是因為您的captureSession
初始化了。 關閉視圖時進行反初始化,最有可能在viewWillDisappear
內部
self.captureSession.deinitialize()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.