Ios 使用AVFoundation在UIView中显示相机馈送
我试图在一个视图中显示相机的提要。后来我需要能够分析视频帧,所以我需要使用AVFoundation来完成这项工作,据我所知 到目前为止,我所拥有的:Ios 使用AVFoundation在UIView中显示相机馈送,ios,swift2,avfoundation,Ios,Swift2,Avfoundation,我试图在一个视图中显示相机的提要。后来我需要能够分析视频帧,所以我需要使用AVFoundation来完成这项工作,据我所知 到目前为止,我所拥有的: import UIKit import AVFoundation class ViewController: UIViewController { @IBOutlet weak var camView: UIView! var captureSession:AVCaptureSession? var videoPrev
import UIKit
import AVFoundation
class ViewController: UIViewController {
@IBOutlet weak var camView: UIView!
var captureSession:AVCaptureSession?
var videoPreviewLayer:AVCaptureVideoPreviewLayer?
var videoCaptureDevice: AVCaptureDevice?
var input: AnyObject?
override func viewDidLoad() {
super.viewDidLoad()
videoCaptureDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
do {
input = try AVCaptureDeviceInput(device: videoCaptureDevice)
} catch {
print("video device error")
}
captureSession = AVCaptureSession()
captureSession?.addInput(input as! AVCaptureInput)
videoPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
videoPreviewLayer?.videoGravity = AVLayerVideoGravityResizeAspectFill
videoPreviewLayer?.frame = camView.layer.bounds
captureSession?.startRunning()
}
}
camView
可见,但不显示任何内容
该应用程序在首次运行时要求获得使用相机的许可,并已获得该许可
设置断点并检查
捕获会话
,视频预览层
,视频捕获设备
和输入
确认它们都已设置。视频预览层未添加到camView。因此,您无法在camView中看到正在运行的摄像头会话
添加此行:
camView.layer.addSublayer(videoPreviewLayer)
你所说的camView是可见的,但不显示任何内容是什么意思?摄像头未显示在camView中?在VIEWDID中启动摄像机不在viewDidload中出现。将行captureSession?.startRunning()移动到VIEWDIDLEASE中。@TejaNandamuri在
camView
上设置背景色,确认视图实际上在屏幕上-它只是不显示摄像机提要。将captureSession?.starRunning()
移动到viewdide
不会有任何区别。我希望您在设备上测试它。您是否在设置中检查了您的应用程序是否启用了摄像头权限?尝试将videoPreviewLayer?.frame=camView.layer.bounds和captureSession?.startRunning()移动到ViewDid。是的,成功了。谢谢你的帮助,几个小时来我一直在瞎琢磨这件事。