资源预览内容
第1页 / 共28页
第2页 / 共28页
第3页 / 共28页
第4页 / 共28页
第5页 / 共28页
第6页 / 共28页
第7页 / 共28页
第8页 / 共28页
第9页 / 共28页
第10页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
iOS 6 Programming CookbookDevDiv 热心网友自发组织翻译iOS 6 Programming Cookbook第 13 章照相机和图片库翻译时间:2021-03-31DevDiv 热心网友自发组织翻译DevDiv 热心网友自发组织翻译版本 1.0 | 2021 年 03 月 17 日1iOS 6 Programming CookbookDevDiv 热心网友自发组织翻译写在前面 iOS 6 Programming Cookbook 是 OReilly 出版社出版,作者是 Vandad Nahavandipoor。在这里希望大家尊重原创,尊重知识版权,此次翻译是 DevDiv 热情网友感觉此书还行,便自发组织翻译,并无偿分享给广阔 iOS 开发者。内容仅供交流学习使用,切勿商用或者其它一切用途。如果你觉得内容可以的话,请主动到官网进行购置:严重警告:限下载后 24 小时内删除DevDiv 热心网友自发组织翻译版本 1.0 | 2021 年 03 月 17 日2iOS 6 Programming CookbookDevDiv 热心网友自发组织翻译目录写在前面2目录3第 13 章 照相机和图片库5 1.0. 介绍5 1.1. 检测和研究摄像头6 1.1.1. 问题 6 1.1.2. 方案 6 1.1.3. 讨论 7 1.2. 利用摄像头进行拍照10 1.2.1. 问题 10 1.2.2. 方案 10 1.2.3. 讨论 11 1.2.4. 参考 12 1.3. 利用摄像头进行视频的录制12 1.3.1. 问题 12 1.3.2. 方案 13 1.3.3. 讨论 14 1.3.4. 参考 14 1.4. 把图片存储在多媒体库中15 1.4.1. 问题 15 1.4.2. 方案 15 1.4.3. 讨论 16 1.5. 把视频录像文件保存在多媒体库中 1.5.1. 问题 16 1.5.2. 方案 17 1.5.3. 讨论 17 1.6. 从多媒体库中获得图片和视频 18 1.6.1. 问题 18 1.6.2. 方案 18 1.6.3. 讨论 19 1.6.4. 参考 19 1.7. 从资源库中直接获取资源19 1.7.1. 问题 19 1.7.2. 方案 19 1.7.3. 讨论 21 1.8. 在 iOS 设备中编辑视频 24 1.8.1. 问题 24 1.8.2. 方案 24 1.8.3. 讨论 24 1.8.4. 参考 2716DevDiv 热心网友自发组织翻译版本 1.0 | 2021 年 03 月 17 日3iOS 6 Programming CookbookDevDiv 热心网友自发组织翻译DevDiv 热心网友自发组织翻译版本 1.0 | 2021 年 03 月 17 日4iOS 6 Programming CookbookDevDiv 热心网友自发组织翻译第 13 章 照相机和图片库1.0. 介绍 目前一些 iOS 的设备都是带有摄像头的,例如 iPhone5 有前后两个摄像头,iPhone3G 和iPhone3GS 是 有 一 个 摄 像 头 , 而 有 些 是 没 有 带 摄 像 头 的 , 比 如 说 iPhone 第 一 代 。UIImagePickerController 这个类可以为大家提供照相,视频录制功能。 本章中,你想学到如何照相和录制视频,以及访问这些照片和视频。并且知道如何访问iOS 设备如 iPod 和 iPad中图片库中的图片和视频。iOS 模拟器不支持照相功能,因此如果我们需要测试这一类的程序时我们需要连接到真机。本章中,我们首先需要判断一下 iOS 设备中的摄像头是否可用。也可以判断摄像头是否允许你来拍照或者录制视频。为了完成这个需求,需要将 MobileCoreServices.framework 框架添加到 target 中,如下步骤:1、在 Xcode 上点击你的工程图标;2、选择需要添加 framework 的 targett;3、在屏幕的顶部选择 Build Phases 标签栏;4、在 Biuld Phase 标签里,使用 Libraries box 寻找可拓展 Link Binary 并按下“+ 按钮;5、在显示出来的列表中,选择 AddressBook6、点击“Add按钮我们来看一下另外一个主题:访问 iOS 设备中不同相册里面的图片和视频。访问相册中的图片要比视频更直接简单。针对图片,我们将给出图片的地址,然后就可以简单的将图片数据加载到 NSData 实例对象中,或者 UIImage 实例对象中。针对视频,我们并不指定一个文件地址来加载视频。而是给出如下这样的地址:assets-library:/asset/asset.MOV?id=1000000004&ext=MOV 针对这样的地址,我们需要使用 Assets Library 框架。Assets Library 框架运行我们通过Photos 程序来访问内容,包括用户采集到的图片和视频。这些图片和视频也能够被 PhotoLibrary 访问。 为了确保本章中的代码例如能够正确编译,需要按照下面的步骤将 Assets Library 框架添加到 target 中: 1、在 Xcode 上点击你的工程图标; 2、选择需要添加 framework 的 targett; 3、在屏幕的顶部选择 Build Phases 标签栏; 4、在 Biuld Phase 标签里,使用 Libraries box 寻找可拓展 Link Binary 并按下“+DevDiv 热心网友自发组织翻译版本 1.0 | 2021 年 03 月 17 日5iOS 6 Programming Cookbook 按钮;5、在显示出来的列表中,选择 AssetsLibrary6、点击“Add按钮DevDiv 热心网友自发组织翻译 为了访问给定的 URL 数据,需要按照如下步骤进行: 1、分配和初始化一个 ALAssetsLibrary 对象。Assets Library 对象能够帮助你通过 Photos程序访问视频和图片. 2、使用 ALAssetsLibrary 的 assetForURL:resultBlock:failureBlock 实例方法来访问资源。这个资源可以是图片,视频,或者今后苹果断定添加到 Photo 库中的其它资源。这个方法是与 block 一起使用的。更多关于 block 对象和 GCD,请参考第六章。 3、release 调第一步中创立的对象。 至 此 , 你 可 能 在 考 虑 : 我 如 何 访 问 资 源 中 的 数 据 ? ALAssetsLibrary 的assetForURL:resultBlock:failureBlock 实例方法的参数 resultBlock 需要指向一个 block 对象,这个 block 对象接收一个 ALAsset 类型的参数。通过 ALAsset 就可以访问图片和视频了。更多关于在 Photo 库中存储图片和视频请参考 13.4 和 13.5 小节。如果你希望学习从 Photo 库和 Assets 库中检索图片和视频,请参考 13.6 和 13.7 小节。1.1. 检测和研究摄像头1.1.1.问题你想检测一下设备是否有你可以访问的摄像头。在使用摄像头之前,进行这样的检测是非常重要的,除非你能确定你的程序永远都不会运行在没有摄像头的设备中。1.1.2.方案 通 过 UIImagePickerController 的 isSourceTypeAvailable 这个 方法进行 检测,并传递UIImagePickerControllerSourceTypeCamera 这个参数进去。代码如下- (BOOL) isCameraAvailablereturn UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera;- (BOOL) application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptionsif (self isCameraAvailable)NSLog(Camera is available.); else NSLog(Camera is not available.);self.window = UIWindow alloc initWithFrame:UIScreen mainScreen bounds;self.window.backgroundColor = UIColor whiteColor;self.window makeKeyAndVisible;return YES;DevDiv 热心网友自发组织翻译版本 1.0 | 2021 年 03 月 17 日6iOS 6 Programming Cookbook1.1.3.讨论DevDiv 热心网友自发组织翻译 当使用 UIImagePickerController 个类来进行类似拍照,录像的功能的时候,你就必须要对摄像头的存在与否进行检测。通过 isSourceTypeAvailable 这个方法,能够对三种数据进行检查。1. 摄像头的功能,通过给这个方法传递 UIImagePickerControllerSourceTypeCamera 这个值2. 图片库,通过传递 UIImagePickerControllerSourceTypePhotoLibrary 这个对象。这个时候 是翻开了照相目录的顶层目录3. 列表形式的浏览目录,通过传递 UIImagePickerControllerSourceTypeSavedPhotosAlbum 这 个值。 如果你想检测如上的任何一个功能是否能够使用,那么你就必须要传递不同的参数。下面让我们看一下具体的代码改如何实现,我在 app delegate 头文件中导入框架的头文件。#import #import #import inter
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号