我目前正在编写一段代码,如下所示:
if error == nil && (captureSession?.canAddInput(input))!
{
captureSession?.addInput(input)
stillImageOutput = AVCaptureStillImageOutput()
//let settings = AVCapturePhotoSettings()
//settings.availablePreviewPhotoPixelFormatTypes =
stillImageOutput?.outputSettings = [AVVideoCodecKey : AVVideoCodecJPEG]
if (captureSession?.canAddOutput(stillImageOutput))!
{
captureSession?.addOutput(stillImageOutput)
previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
previewLayer?.videoGravity = AVLayerVideoGravityResizeAspect
previewLayer?.connection.videoOrientation = AVCaptureVideoOrientation.portrait
cameraView.layer.addSublayer(previewLayer!)
captureSession?.startRunning()
}
}
我知道我应该使用AVCapturePhotoOutput()
代替AVCaptureStillImageOutput()
,但如果我做出更改,我会对如何转换剩余的块感到困惑。
具体来说,如何使用评论let settings = AVCapturePhotoSettings()
?
供参考,我使用this教程作为指导。
由于
答案 0 :(得分:2)
Apple文档对How to use AVCapturePhotoOutput
这些是拍摄照片的步骤。
在您的clickCapture方法中使用以下代码,并且忘记在您的课程中确认并实施委派。
rptInventoryStock.LocalReport.DataSources.Add(new ReportDataSource("IOOP_DatabaseDataSet", dtbl));
如果你想知道从avfoundation捕捉照片的不同方式,请查看我以前的SO answer