相机预览层未显示

Posted

技术标签:

【中文标题】相机预览层未显示【英文标题】:Camera Preview Layer not showing up 【发布时间】:2017-03-24 22:04:22 【问题描述】:

我正在快速创建一个带有自定义相机视图的应用程序,但视图只是黑色 似乎没有显示实时预览窗口,这在我的 Xcode 应用程序、iPad 上的 Swift Playground 和 Mac 上的 Swift Playground 中不起作用。 这是代码:

import UIKit
import CoreImage
import CoreFoundation
import AVKit
import AVFoundation

let view = UIView()
var str = "Hello, playground"
import PlaygroundSupport
var captureSession: AVCaptureSession?
var stillImageOutput: AVCapturePhotoOutput?
var previewLayer: AVCaptureVideoPreviewLayer?







captureSession = AVCaptureSession()
captureSession!.sessionPreset = AVCaptureSessionPresetPhoto
var backCamera = AVCaptureDevice.defaultDevice(withMediaType:     AVMediaTypeVideo)
 var error: NSError?
 //var lol = AVCaptureInput();
 // var input = AVCaptureDeviceInput(device: backCamera, error: &error)

 var input = try AVCaptureDeviceInput(device: backCamera)

//error

if error == nil && captureSession!.canAddInput(input) 
    captureSession!.addInput(input)
    stillImageOutput = AVCapturePhotoOutput()
//    stillImageOutput?.outputSettings = [AVVideoCodecKey: AVVideoCodecJPEG]
    captureSession!.addOutput(stillImageOutput)



 previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
 view.layer.addSublayer(previewLayer!)
 previewLayer!.frame = view.bounds
 PlaygroundPage.current.liveView = view
 //PlaygroundPage.currentPage.liveView = view

【问题讨论】:

在应用程序中,您是否向用户请求相机授权? 是的,用户同意,这只是一个黑色视图 【参考方案1】:

我在您的代码中看到的一个问题是您从不启动捕获会话。在此运行中使用captureSession.startRunning()

【讨论】:

我并不羞于承认我犯了同样的错误。谢谢@Zekep

以上是关于相机预览层未显示的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的相机预览显示水平而不是垂直?

如何在 SurfaceView 上显示相机预览?

在 android 中设置显示方向后,相机相机预览不正确

有啥巧妙的方法可以编辑相机预览和显示的内容吗?

相机预览在 Android 上首次加载时不显示

裁剪/剪辑相机预览以仅显示图像的上半部分