AV Foundation之视频捕捉(2)创建预览视图 原创

2019-04-12 16:08

前言

在讲述AV Foundation框架之媒体捕捉。我将用一个小案例来开始整个知识点的引导以及疏通。我就不一一赘述相关的UI实现了。关于UI搭建部分,同学们可以在本篇文章末尾拿到百度网盘分享。你就可以在这个基础上进行编码了。

2.1.1 创建预览视图

图2-1是项目的用户界面的组成图示。我们把重点放在中间层THPreview View的实现上。因为它直接包含了AV Foundation 的用户界面。


图 2-1


图 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


小伙伴们阅读后,请喜欢一下。文章更新可以提醒到你哦~~~~



 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明,否则将追究法律责任。https://m.blog.kokojia.com/logicedu/b-2200.html

阅读 11005 / 评论 0

 相关视频教程更多课程