一旦AVCaptureSession开始运行,我就手动创建AVCaptureVideoPreviewLayer(一种CALayer)并将其添加到UIView中,如下所示:
func captureSessionStartedRunning(session:AVCaptureSession?) {
if let captureSession = session {
if let previewLayer = AVCaptureVideoPreviewLayer.init(session: captureSession) {
previewLayer.frame = self.view.bounds
self.view.layer.addSublayer(previewLayer)
previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
}
}
}
我没有使用大小类自动旋转的经验,所以有人可以告诉我在这里处理自动旋转的最简单方法是什么?
最佳答案
override :
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubViews()
previewLayer.frame = self.view.bounds
}
每当您的视图布局更改时,它将图层的大小更新为视图的大小。
您可能还需要将PreviewLayer的
.videoGravity
更改为.aspectFill