我正在开发一个相机基础应用程序。在以前的版本中它可以工作,但现在我几乎找不到答案。我读过 AVCaptureStillImageOutput 已被弃用。感谢你的回答。
let devices = AVCaptureDevice.devices().filter{ $0.hasMediaType(AVMediaTypeVideo) && $0.position == AVCaptureDevicePosition.Front }
if let captureDevice = devices.first as? AVCaptureDevice {
do {
let input = try AVCaptureDeviceInput.init(device: captureDevice)
captureSession.addInput(input)
} catch _ {
print("error: \(error?.localizedDescription)")
}
captureSession.sessionPreset = AVCaptureSessionPresetPhoto
captureSession.startRunning()
stillImageOutput.outputSettings = [AVVideoCodecKey:AVVideoCodecJPEG]
if captureSession.canAddOutput(stillImageOutput) == true{
captureSession.addOutput(stillImageOutput)
}
if let previewLayer = AVCaptureVideoPreviewLayer(session: captureSession) {
previewLayer.bounds = view.bounds
previewLayer.position = CGPointMake(view.bounds.midX, view.bounds.midY)
previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
cameraPreview = UIView(frame: CGRectMake(0.0, 20.0, view.bounds.size.width, view.bounds.size.height))
cameraPreview.layer.addSublayer(previewLayer)
}
}