在iOS中要拍照和录制视频最简单的方式就是调用UIImagePickerController,UIImagePickerController继承与UINavigationController,需要使用代理方法时需要同时遵守这两个协议,以前可能比较多的是使用UIImagePickerController来选择相册图片或者拍摄图片,其实它的功能还能用来拍摄视频。
使用UIImagePickerController拍照或者拍视频主要以下几个步骤:
创建一个全局的UIImagePickerController对象。
指定UIImagePickerController的来源sourceType,是来自UIImagePickerControllerSourceTypeCamera相机,还是来自UIImagePickerControllerSourceTypePhotoLibrary相册。
然后是设置mediaTypes媒体类型,这是录制视频必须设置的选项,默认情况下是kUTTypeImage(注意:mediaTypes的设置是在MobileCoreServices框架下),同还可以设置一些其他视频相关的属性,例如:videoQuality视频的质量、videoMaximumDuration视频的最大录制时长(默认为10s),cameraDevice摄像头的方向(默认为后置相机)。
指定相机的捕获模式cameraCaptureMode,设置mediaTypes后在设置捕获模式,注意的是捕获模式需要在相机来源sourceType为相机时设置,否则会出现crash。
适时的展示UIImagePickerController,然后在相应的代理方法保存和获取图片或视频。
第一步:iOS10之后需要在info中添加权限
1、Privacy - Camera Usage Description
App需要您的同意,才能访问相机
2、Privacy - Photo Library Additions Usage Description
App需要您的同意,才能访问相册
第二步:在需要调用相机和相册的controller添加头文件和代理
第三步:判断是否有相机和相机使用权限
第四步:调用相机和相册和回调中处理获得的Image
最后,iOS10之后调起手机设置的方式和iOS10之前的不一样,需要先判断手机系统是否大于iOS10,这里直接上代码吧
判断手机系统是否大于ios10
#define IOS_VERSION_10 (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_9_x_Max)?(YES):(NO)
简单的实现了APP中iOS的相册和相机的调用。