カメラベースアプリを開発しています。以前のバージョンでは機能していましたが、今ではこれに対する答えがほとんど見つかりません。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)
}
}