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