Как остановить лаг в видеофайле, когда я делаю фото на iphone - PullRequest
0 голосов
/ 14 июня 2019

В моем приложении у меня есть UIImageView, который показывает предварительный просмотр видео.Когда я делаю фотографию, я замечаю, что предварительный просмотр на мгновение останавливается, и я хотел бы остановить паузу.(Я знаю, что для захвата изображения требуется время, но я не понимаю, почему оно должно приостанавливать подачу видео)

Соответствующие части моего приложения находятся ниже.Я также относительно новичок в разработке для ios, поэтому может быть больше, чем несколько ошибок!

//global variables
var session = AVCaptureSession()
var photoOutput: AVCapturePhotoOutput?
var videoPreviewLayer: AVCaptureVideoPreviewLayer?
var layer: UIView?
var videoDataOutput = AVCaptureVideoDataOutput()

В viewdidload / viewdidAppear

session.sessionPreset = .photo
photoOutput = AVCapturePhotoOutput()
session.addOutput(depthDataOutput)
session.addOutput(videoDataOutput)

videoPreviewLayer = AVCaptureVideoPreviewLayer(session: session)
videoPreviewLayer!.videoGravity = AVLayerVideoGravity.resizeAspect
videoPreviewLayer!.connection?.videoOrientation = AVCaptureVideoOrientation.portrait
photoPreviewImageView.layer.addSublayer(videoPreviewLayer!)

session.startRunning()

Моя функция захвата изображения

func takeImage(){
    var photoSettings = AVCapturePhotoSettings()

    photoSettings = AVCapturePhotoSettings(format: [AVVideoCodecKey: AVVideoCodecType.hevc])
    photoOutput!.capturePhoto(with: photoSettings, delegate: self)
}

Я полагаю, что это возможно отчасти потому, что приложение iphone camera имеет очень маленькую паузу при съемке фотографии (что также может быть предполагаемым эффектом), и потому что функция панорамирования, кажется, делает непрерывные фотографии без проблем.

...