ios UIImagePickerController简单说明

首先,VC中添加#import <MobileCoreServices/MobileCoreServices.h> 使用(NSString *) kUTTypeImage定义在其中

判断是否授权:

 NSString *mediaType = AVMediaTypeVideo;// Or AVMediaTypeAudio
AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:mediaType];

AVAuthorizationStatusNotDetermined = 0,//未明确
    AVAuthorizationStatusRestricted,//受限
    AVAuthorizationStatusDenied,//不允许
    AVAuthorizationStatusAuthorized//允许

第一种使方法照相机:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];//添加代理
imagePicker.delegate = self;//是否允许编辑
imagePicker.allowsEditing = YES;//资源类型
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;//media类型
imagePicker.mediaTypes =  [[NSArray alloc] initWithObjects: (NSString *) kUTTypeImage, nil];//转跳
[self presentModalViewController:imagePicker animated:YES];

第二种使用摄像机:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
 imagePicker.delegate = self;
 imagePicker.allowsEditing = YES;
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;//media类型
imagePicker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil];//视频品质
imagePicker.videoQuality = UIImagePickerControllerQualityTypeLow;
[self presentModalViewController:imagePicker animated:YES];

第三种使用相册取图片类型:

 UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
 imagePicker.allowsEditing = YES;
 imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
 imagePicker.mediaTypes =  [[NSArray alloc] initWithObjects: (NSString *)kUTTypeImage, nil];
 [self presentModalViewController:imagePicker animated:YES];

第四种使用相册取视频类型:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.allowsEditing = YES;
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
 imagePicker.mediaTypes =  [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil];
[self presentModalViewController:imagePicker animated:YES];

代理:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
  if ([[info objectForKey:UIImagePickerControllerMediaType] isEqualToString:(NSString*)kUTTypeImage]) {      //获取照片的原图
        UIImage* original = [info objectForKey:UIImagePickerControllerOriginalImage];
        //获取图片裁剪的图
        UIImage* edit = [info objectForKey:UIImagePickerControllerEditedImage];
        //获取图片裁剪后,剩下的图
        UIImage* crop = [info objectForKey:UIImagePickerControllerCropRect];
        //获取图片的url
        NSURL* url = [info objectForKey:UIImagePickerControllerMediaURL];
        //获取图片的metadata数据信息
        NSDictionary* metadata = [info objectForKey:UIImagePickerControllerMediaMetadata];
        //如果是拍照的照片,则需要手动保存到本地,系统不会自动保存拍照成功后的照片
       // UIImageWriteToSavedPhotosAlbum(edit, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
  } else if ([[info objectForKey:UIImagePickerControllerMediaType] isEqualToString:(NSString*)kUTTypeMovie]) {
    NSString *videoPath = [[info objectForKey:UIImagePickerControllerMediaURL] path];
    self.fileData = [NSData dataWithContentsOfFile:videoPath];   }
  [picker dismissModalViewControllerAnimated:YES];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
     [picker dismissModalViewControllerAnimated:YES];
}
时间: 2024-10-12 13:37:54

ios UIImagePickerController简单说明的相关文章

IOS 霓虹灯简单小程序

在RootViewController.m文件中 - (void)viewDidLoad//视图加载方法 - (void)viewDidLoad { //设置红色 UIView *viewRed = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 120, 30)]; viewRed.backgroundColor = [UIColor redColor]; [self.view addSubview:viewRed]; //设置橙色 UIVi

iOS 类似简单的第三方微博客户端,可进行登录微博浏览相关信息

Demo地址:https://github.com/ChenNan-FRAM/Fenvo (如果你觉得有用麻烦star一下感激不尽) Fenvo Objective-C, iOS 类似简单的第三方微博客户端,可进行登录微博浏览相关信息.在这个过程我是遇到很多的问题,但是大部分都顺利解决了,相信如果你的项目有类似的地方我的项目里面也能够给你提供一定的帮助,如果需要,可以给我留言或者在Github上联系我. UI简陋,暂未完善.有UI大师指点就最好了. 这个应用我是从开始学后为了实践自己的能力一直在

iOS之简单瀑布流的实现

iOS之简单瀑布流的实现 前言 超简单的瀑布流实现,这里说一下笔者的思路,详细代码在这里. 实现思路 collectionView能实现各中吊炸天的布局,其精髓就在于UICollectionViewLayout,因此我们要自定义一个layout来继承系统的UICollectionViewLayout,所有工作都在这个类中进行. 1.定义所需属性 瀑布流的思路就是,从上往下,那一列最短,就把下一个item放在哪一列,因此我们需要定义一个字典来记录每一列的最大y值 每一个item都有一个attrib

iOS上简单推送通知(Push Notification)的实现

http://blog.csdn.net/daydreamingboy/article/details/7977098 iOS上简单推送通知(Push Notification)的实现 根据这篇很好的教程(http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12),结合自己的实践,写下一点笔记,仅供参考:) 由于篇幅较长,我列出简单的目录,如下 1) 理解Apple推送通知的机制 2)

iOS开发-简单解析JSON数据

什么是JSON ? JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) ? JSON的格式很像OC中的字典和数组 ? {"name" : "Jack", "age" : 10} {"name" : ["jack", "rose", "jim"]} ? 标准JSON格式的注意点: key必须用双

iOS UIPageControl简单实例

iOS UIPageControl简单范例 关于自动 滚动代码 有待补充 实例中的图片自行添加 .h 文件代码 #import <UIKit/UIKit.h> @interface ViewController : UIViewController<UIScrollViewDelegate> { UIScrollView *_scrollView; NSMutableArray *slideImages; UIPageControl *_page; } @end .m 文件代码 #

IOS UIImagePickerController 保存图片到 相册

// 异步下载图片 dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0); dispatch_group_t group =dispatch_group_create(); dispatch_group_async(group, queue, ^{ NSData *data = [NSDatadataWithContentsOfURL:[NSURLURLWithString:ima

iOS开发 简单实现视频音频的边下边播 (转)

1.ios视频音频边缓存边播放,缓存时可以在已下载的部分拖拽进度条. 3.无论是下载到一半退出还是下载完退出,已缓存的数据都存到自己指定的一个路径.如果已下载完,下次播放时可以不再走网络,直接播放本地文件. (具体效果看唱吧4.1版本以后的视频效果吧) 用到的几个类: 2.MPMoviePlayerController 实现步骤: 2.在本地开一个http server,拼一个本地地址(http://127.0.0.1:xxxx/xxx.mp4),丢给MPMoviePlayerControlle

UIImagePickerController简单使用

UIImagePickerController用于管理可自定义的,系统支持的用于获取设备上图片和视频的用户界面.同时可以用于在App中选择存储的图片和视频.一个UIImagePickerController管理用户交互并且将这些交互结果传递给一个代理对象.该类不能被继承和修改,除了自定义cameraOverlayView外. UIVideoEditorController Media Capture and Access to Camera; 先简单讲解下UIImagePickerControl