Swift中AVCaptureVideoPreviewLayer的帧。

6
我正在尝试在Swift中获取屏幕上的视频输出。但屏幕仍然完全是白色的。我找到了这篇ObjC教程,并按照其中的步骤进行了操作(只是根据Swift语法进行了修改)。
其中有一行代码:previewLayer.frame = myView.bounds; 但是,在Swift中,字段.frame似乎是只读的。我认为这可能就是为什么我在屏幕上看不到任何内容的原因。
那么,我该如何在Swift中设置previewLayer的框架呢?

在Swift中,frame不是只读的。什么让你认为它是只读的? - Bill
忘记解包参数了,我的错 :( - Matthijn
1个回答

7
我看到教程中有三个点可能会导致您无法显示预览画面,从而得到一个白屏。下面是Obj-C和Swift对应的代码。

1)您可能忘记将输入添加到捕获会话中:
// [session addInput:input];
session.addInput(input)

2) 你可能没有将预览层的边界初始化为你的视图控制器的边界:

// UIView *myView = self.view;
// previewLayer.frame = myView.bounds;
previewLayer.frame = self.view.bounds

3) 您可能没有将预览图层添加为视图的子层:

// [self.view.layer addSublayer:previewLayer];
self.view.layer.addSublayer(previewLayer)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接