Я успешно записываю 5 секунд видео, используя следующий код.но мне нужно сделать снимок во время записи видео.Прежде всего я хочу знать, возможно ли сделать снимок во время записи. Если это возможно, как выполнить эту задачу в ios swift3.Моя актуальная задача заключается в том, что мне нужно захватывать и сохранять одно видео и одно изображение каждые 5 секунд, когда пользователь нажимает кнопку. Может ли кто-нибудь помочь мне выполнить эту задачу.
func VideoCaptureMethod() {
//self.cameraView = self.view
self.cameraManager.resumeCaptureSession()
let devices = AVCaptureDevice.devices(for: AVMediaType.video)
for device in devices {
if (device as AnyObject).position == AVCaptureDevice.Position.back{
do{
let input = try AVCaptureDeviceInput(device: device )
if captureSession.canAddInput(input){
captureSession.addInput(input)
sessionOutput.outputSettings = [AVVideoCodecKey : AVVideoCodecJPEG]
if captureSession.canAddOutput(sessionOutput){
captureSession.addOutput(sessionOutput)
previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
previewLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill
previewLayer.connection?.videoOrientation = AVCaptureVideoOrientation.portrait
cameraView.layer.addSublayer(previewLayer)
previewLayer.position = CGPoint(x: self.cameraView.frame.width / 2, y: self.cameraView.frame.height / 2)
previewLayer.bounds = cameraView.frame
}
captureSession.addOutput(movieOutput)
captureSession.startRunning()
let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
let fileUrl = paths[0].appendingPathComponent("output.mov")
try? FileManager.default.removeItem(at: fileUrl)
movieOutput.startRecording(to: fileUrl, recordingDelegate: self)
let delayTime = DispatchTime.now() + 5
DispatchQueue.main.asyncAfter(deadline: delayTime) {
print("stopping")
self.movieOutput.stopRecording()
}
}
}
catch{
print("Error")
}
}
}
}