为什么AVCam示例代码不使用layerWithSession?

时间:2018-05-31 11:39:03

标签: ios objective-c avfoundation avcam

我正在试图解开Apple的Objective-C AVCam示例代码,但我没有看到它将捕获会话添加到预览层的确切位置。我们的代码使用AVCaptureVideoPreviewLayer接口创建一个layerWithSession指针,但如果我们在主线程上使用它会导致问题,因为它可能需要10秒才能完成。我在网上找到的其他几个示例代码使用相同的界面。

但我没有在AVCam示例的ObjC代码中看到任何地方。它为AVCamPreviewView分配一个会话,但据我所知,它只存储对象。或者这实际上是将会话分配给UIView

1 个答案:

答案 0 :(得分:1)

以下行确保PreviewView具有AVCaptureVideoPreviewLayer。

+ (Class)layerClass
{
    return [AVCaptureVideoPreviewLayer class];
}

在内部调用layerClass()以找出在初始化时应该将哪个层附加到此UIView。然后setSession()设置此预览图层的会话。