简体   繁体   English

在IOS应用中构建相机时出错

[英]Errors building a camera in an IOS app

I am trying to build camera functionality in an IOS app. 我正在尝试在IOS应用程序中构建相机功能。 Here is my first error: 这是我的第一个错误:

Cannot assign value of type 'AVCaptureVideoPreviewLayer' to type 'CALayer!' 无法将类型“ AVCaptureVideoPreviewLayer”的值分配给类型“ CALayer!”。

Swift also has an issue with assigning a property to itself Swift也有为其分配属性的问题

if previewLayer = AVCaptureVideoPreviewLayer(session: captureSession){

self.previewLayer = previewLayer
self.view.layer.addSublayer(self.previewLayer)
self.previewLayer.frame = self.view.layer.frame
captureSession.startRunning()

let dataOutput = AVCaptureVideoDataOutput()
dataOutput.videoSettings = [(kCVPixelBufferPixelFormatTypeKey as NSString):NSNumber(value:kCVPixelFormatType_32BGRA)] as [String : Any]

dataOutput.alwaysDiscardsLateVideoFrames = true

if captureSession.canAddOutput(dataOutput) {
    captureSession.addOutput(dataOutput)
}

captureSession.commitConfiguration()

let queue = DispatchQueue(label: "com.brianadvent.captureQueue")
    dataOutput.setSampleBufferDelegate(self, queue: queue)
}

It's not compiling because that first line isn't a valid if statement: 它没有编译,因为第一行不是有效的if语句:

if previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)

Even an if-let wouldn't be valid here because that initializer isn't failable. 即使是if-let在这里也不是有效的,因为该初始化程序不会失败。 Without more context, I suggest you drop that if entirely and assign the AVCaptureVideoPreviewLayer right to your previewLayer like so: 在没有更多上下文的情况下,建议您完全删除它,并将AVCaptureVideoPreviewLayer分配给您的previewLayer如下所示:

self.previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM