喜欢就抬抬小手,关注一下CC老师!
前言
在讲述AV Foundation框架之媒体捕捉。我将用一个小案例来开始整个知识点的引导以及疏通。我就不一一赘述相关的UI实现了。关于UI搭建部分,同学们可以在本篇文章末尾拿到百度网盘分享。你就可以在这个基础上进行编码了。
2.1.1 创建预览视图
图2-1是项目的用户界面的组成图示。我们把重点放在中间层THPreview View的实现上。因为它直接包含了AV Foundation 的用户界面。
图2-1所示的THPreview View 类提供给用户用i 个摄像头当前拍摄内容的实时预览图。我们将使用AVCaptureVideoPreviewLayer方法实现这个行为。首先我们通过认识THPreview View 的接口开始了解如何实现。
代码清单2-1 THPreviewView 接口
代码清单2-2 THPreviewView 实现
2.1.2 坐标空间转换
当使用AV Foundation 的捕捉API时,一定要理解屏幕坐标系和捕捉设备坐标系不同。iOS6.0之前的版本,要在这2个坐标空间进行转换非常困难。要精确的将屏幕坐标点转换为摄像头坐标点。开发者必须考虑诸如视频重力、镜像、图层变换和方向等因素进行综合计算。幸运的是,AVCaptureVideoPreviewLayer现在定义了一个转换方法让这一过程变得简单多了。
AVCaptureVideoPreviewLayer定义了2个方法用于坐标系间进行转换:
captureDevicePointOfInterestForPoint:获取屏幕坐标系的CGPoint 数据,返回转换得到的设备坐标系CGPoint数据。
pointForCaptureDevicePointOfInterest:获取摄像头坐标系的CGPoint数据,返回转换得到的屏幕坐标系CGPoint 数据。
THPreview View 使用captureDevicePointOfInterestForPoint:方法将用户触点信息转换为摄像头设备坐标系的中的点。在项目中点击对焦和点击曝光功能实现会用到这个转换坐标点。
学习这篇文章重点,要弄明白预览视图的创建 和 坐标空间转换的方法。
链接:此链接下的项目已经搭建好UI。同学们,可以在这个基础上进行编码;
链接:http://pan.baidu.com/s/1c1A1NDA 密码:ca7o
小伙伴们阅读后,请喜欢一下。文章更新可以提醒到你哦~~~~