在我的应用中,我有一个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)
}
我相信,部分原因是因为iphones摄像头应用在拍照时的暂停时间非常短(这也可能是预期的效果),而且全景功能似乎可以连续拍摄照片而没有问题。