真的好久没写Blog了。。囧
捕捉硬件数据需要用到以下几个类
AVCaptureSession
AVCaptureDeviceInput
AVCaptureVideoDataOutput
AVCaptureVideoPreviewLayer
AVCaptureSession
控制着硬件的Input以及数据的Output(就理解为控制器吧)
AVCaptureDeviceInput
硬件的输入(从AVCaptureDevice对象中捕捉输入相关得数据)
AVCaptureVideoDataOutput
视频数据的输出(AVCaptureOutput的子类,捕捉输出相关得属性)
AVCaptureVideoPreviewLayer
预览视图
说下大概得逻辑
初始化Session(负责协调输入,输出数据交互)
通过AVCaptureDevice.defaultDeviceWithMediaType方法来获取 AVCaptureDevice(音频,视频) 具体看你传进去得参数而定
初始化输入,输出 对象
设置输出画质,将输入,输出 对象添加进session中
创建GCD并设置输出对象的相关回调
代码部分
检测摄像头权限是否可用以及跳转设置的函数
func checkVideoAuth()
func openSettings()
这里的跳转设置函数是在IOS8以后才可使用的
摄像头输入输出设置的相关设置
func setupCamera()
完整代码如下