iOS6ProgrammingCookbook第13章照相机和图片库

上传人:cn****1 文档编号:547815542 上传时间:2022-11-23 格式:DOC 页数:28 大小:1.72MB
返回 下载 相关 举报
iOS6ProgrammingCookbook第13章照相机和图片库_第1页
第1页 / 共28页
iOS6ProgrammingCookbook第13章照相机和图片库_第2页
第2页 / 共28页
iOS6ProgrammingCookbook第13章照相机和图片库_第3页
第3页 / 共28页
iOS6ProgrammingCookbook第13章照相机和图片库_第4页
第4页 / 共28页
iOS6ProgrammingCookbook第13章照相机和图片库_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《iOS6ProgrammingCookbook第13章照相机和图片库》由会员分享,可在线阅读,更多相关《iOS6ProgrammingCookbook第13章照相机和图片库(28页珍藏版)》请在金锄头文库上搜索。

1、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。在这里希望大家尊重原创,尊重知识版权,此次翻译是 De

2、vDiv 热情网友感觉此书还行,便自发组织翻译,并无偿分享给广阔 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

3、. 问题 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.

4、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 CookbookD

5、evDiv 热心网友自发组织翻译第 13 章 照相机和图片库1.0. 介绍 目前一些 iOS 的设备都是带有摄像头的,例如 iPhone5 有前后两个摄像头,iPhone3G 和iPhone3GS 是 有 一 个 摄 像 头 , 而 有 些 是 没 有 带 摄 像 头 的 , 比 如 说 iPhone 第 一 代 。UIImagePickerController 这个类可以为大家提供照相,视频录制功能。 本章中,你想学到如何照相和录制视频,以及访问这些照片和视频。并且知道如何访问iOS 设备如 iPod 和 iPad中图片库中的图片和视频。iOS 模拟器不支持照相功能,因此如果我们需要测试这一

6、类的程序时我们需要连接到真机。本章中,我们首先需要判断一下 iOS 设备中的摄像头是否可用。也可以判断摄像头是否允许你来拍照或者录制视频。为了完成这个需求,需要将 MobileCoreServices.framework 框架添加到 target 中,如下步骤:1、在 Xcode 上点击你的工程图标;2、选择需要添加 framework 的 targett;3、在屏幕的顶部选择 Build Phases 标签栏;4、在 Biuld Phase 标签里,使用 Libraries box 寻找可拓展 Link Binary 并按下“+ 按钮;5、在显示出来的列表中,选择 AddressBook6、

7、点击“Add按钮我们来看一下另外一个主题:访问 iOS 设备中不同相册里面的图片和视频。访问相册中的图片要比视频更直接简单。针对图片,我们将给出图片的地址,然后就可以简单的将图片数据加载到 NSData 实例对象中,或者 UIImage 实例对象中。针对视频,我们并不指定一个文件地址来加载视频。而是给出如下这样的地址:assets-library:/asset/asset.MOV?id=1000000004&ext=MOV 针对这样的地址,我们需要使用 Assets Library 框架。Assets Library 框架运行我们通过Photos 程序来访问内容,包括用户采集到的图片和视频。这

8、些图片和视频也能够被 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 按

9、钮;5、在显示出来的列表中,选择 AssetsLibrary6、点击“Add按钮DevDiv 热心网友自发组织翻译 为了访问给定的 URL 数据,需要按照如下步骤进行: 1、分配和初始化一个 ALAssetsLibrary 对象。Assets Library 对象能够帮助你通过 Photos程序访问视频和图片. 2、使用 ALAssetsLibrary 的 assetForURL:resultBlock:failureBlock 实例方法来访问资源。这个资源可以是图片,视频,或者今后苹果断定添加到 Photo 库中的其它资源。这个方法是与 block 一起使用的。更多关于 block 对象和

10、GCD,请参考第六章。 3、release 调第一步中创立的对象。 至 此 , 你 可 能 在 考 虑 : 我 如 何 访 问 资 源 中 的 数 据 ? ALAssetsLibrary 的assetForURL:resultBlock:failureBlock 实例方法的参数 resultBlock 需要指向一个 block 对象,这个 block 对象接收一个 ALAsset 类型的参数。通过 ALAsset 就可以访问图片和视频了。更多关于在 Photo 库中存储图片和视频请参考 13.4 和 13.5 小节。如果你希望学习从 Photo 库和 Assets 库中检索图片和视频,请参考

11、13.6 和 13.7 小节。1.1. 检测和研究摄像头1.1.1.问题你想检测一下设备是否有你可以访问的摄像头。在使用摄像头之前,进行这样的检测是非常重要的,除非你能确定你的程序永远都不会运行在没有摄像头的设备中。1.1.2.方案 通 过 UIImagePickerController 的 isSourceTypeAvailable 这个 方法进行 检测,并传递UIImagePickerControllerSourceTypeCamera 这个参数进去。代码如下- (BOOL) isCameraAvailablereturn UIImagePickerController isSourceT

12、ypeAvailable:UIImagePickerControllerSourceTypeCamera;- (BOOL) application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptionsif (self isCameraAvailable)NSLog(Camera is available.); else NSLog(Camera is not available.);self.window = UIWindow alloc initWithFrame:UIS

13、creen 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

14、这个方法,能够对三种数据进行检查。1. 摄像头的功能,通过给这个方法传递 UIImagePickerControllerSourceTypeCamera 这个值2. 图片库,通过传递 UIImagePickerControllerSourceTypePhotoLibrary 这个对象。这个时候 是翻开了照相目录的顶层目录3. 列表形式的浏览目录,通过传递 UIImagePickerControllerSourceTypeSavedPhotosAlbum 这 个值。 如果你想检测如上的任何一个功能是否能够使用,那么你就必须要传递不同的参数。下面让我们看一下具体的代码改如何实现,我在 app delegate 头文件中导入框架的头文件。#import #import #import inter

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号