iOS学习笔记31-从图册获取图片和视频
来源:互联网 发布:js 图片浏览器 手机 编辑:程序博客网 时间:2024/05/15 13:04
一、从图册中获取本地图片和视频
从图册中获取文件,我们使用的是UIImagePickerController
,这个类我们在之前的摄像头中使用过,这里是链接:iOS学习笔记27-摄像头,这里我们使用的是它的另外一个功能,那就是从图册中获取图片和视频
基本步骤:
- 创建
UIImagePickerController
对象,并设置代理 - 设置拾取源为图册,设置可编辑属性
- 如果只是获取图片,就设置图片的媒体类型,如果只是获取视频,就设置视频的媒体类型,如果两者都要获取,就设置两者的媒体类型(实例采用)
- 弹出图片选择控制器
- 处理图片选择控制器的代理方法
下面是使用实例:
#import "ViewController.h"#import <AVFoundation/AVFoundation.h>#import <AVKit/AVKit.h>@interface ViewController () <UINavigationControllerDelegate, UIImagePickerControllerDelegate>@property (strong, nonatomic) UIImagePickerController *ipc;/* 相册选择器 */@property (strong, nonatomic) AVPlayerViewController *playerVC;/* 视频播放器 */@property (weak, nonatomic) IBOutlet UIImageView *showImageView;/* 显示图片 */@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; //设置显示图片可交互 self.showImageView.userInteractionEnabled = YES; //创建AVPlayerViewController控制器 AVPlayerViewController *playerVC = [[AVPlayerViewController alloc] init]; playerVC.view.frame = self.showImageView.bounds; [self.showImageView addSubview:playerVC.view]; self.playerVC = playerVC; self.playerVC.view.hidden = YES;}#pragma mark - UI点击/* 点击打开本地相册 */- (IBAction)pickImage:(id)sender{ //如果正在播放视频,停止播放 if (self.playerVC.player) { [self.playerVC.player pause]; } //创建图片选择控制器 UIImagePickerController *ipc = [[UIImagePickerController alloc] init]; //设置拾取源类型 ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; //设置媒体类型,这里设置图册支持的所有媒体类型,图片和视频 ipc.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:ipc.sourceType]; ipc.delegate = self;//设置代理 ipc.allowsEditing = YES;//设置可编辑 self.ipc = ipc; //弹出图片选择控制器 [self presentViewController:ipc animated:YES completion:nil];}#pragma mark - UIImagePickerControllerDelegate代理方法/* 选择了一个图片或者视频后调用 */- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ //获取选择文件的媒体类型 NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType]; NSURL *videoURL = nil; if ([mediaType isEqualToString:@"public.image"]){//选择了图片 //获取选择的图片 UIImage *selectedImage = [info objectForKey:UIImagePickerControllerOriginalImage]; //显示图片 self.showImageView.image = selectedImage; self.showImageView.contentMode = UIViewContentModeScaleAspectFill; NSLog(@"found an image %@",selectedImage); //删除视频 self.playerVC.player = nil; self.playerVC.view.hidden = YES; } else if ([mediaType isEqualToString:@"public.movie"]){//选择了视频 //获取临时保存视频的URL videoURL = [info objectForKey:UIImagePickerControllerMediaURL]; NSLog(@"found a video %@",videoURL); //直接创建AVPlayer,它内部也是先创建AVPlayerItem,这个只是快捷方法 AVPlayer *player = [AVPlayer playerWithURL:videoURL]; self.playerVC.player = player; self.playerVC.view.hidden = NO; } [self dismissViewControllerAnimated:YES completion:^{ if (videoURL) { //调用控制器的属性player的开始播放方法 [self.playerVC.player play]; } }];}/* 取消选择后调用 */- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{ [self dismissViewControllerAnimated:YES completion:^{ //取消选择后继续播放视频 if (self.playerVC.player) { [self.playerVC.player play]; } }]; NSLog(@"取消选择");}@end
Demo代码点这里:learnDemo里面的PickerTest
获取视频的时候,会有一个拷贝图册里的视频文件到本地沙盒tmp路径下的过程,需要等待拷贝完成,才会调用代理方法。
这一节属于知识补充,就没有很多新内容,大部分内容之前讲过。
如果有什么问题,就在下方评论区中提出!O(∩_∩)O哈!
0 0
- iOS学习笔记31-从图册获取图片和视频
- iOS学习笔记 从图册获取图片和视频
- 系统拍照和本地图册获取图片
- [IOS]从相册获取图片和视频进行上传
- IOS 获取视频图片的
- iOS获取视频所有图片
- IOS 获取视频图片的
- iOS 获取图片视频图库
- iOS获取相册图片视频
- Swift学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片
- ios学习--获取通过UIImagePackerController获取的系统相册 图片&视频 的名称信息
- iOS 上传图片和视频
- OpenCV学习笔记04--图片和视频的保存
- ios 获取视频制定帧图片
- iOS 获取视频第一帧图片
- iOS获取视频第一帧图片
- Android笔记之获取视频、图片缩略图
- iOS学习笔记 视频播放
- LeetCode之20---Valid Parentheses
- java web项目搭建(spring4+springMVC+hibernate)
- 实现一个具有GetMin功能的栈
- [技术讨论]关于前几天发布的京东bug上的问题分析
- http://blog.sina.com.cn/s/blog_4452275001012vzl.html
- iOS学习笔记31-从图册获取图片和视频
- Linux 25周年:与创始人Linus Torvalds对话
- 内核与内核模块:depmod,lsmod,modinfo,insmod,rmmod,mdprobe
- 2016年国内开源镜像站点汇总
- 0x05 【OD动态调试学习】 破解 PC Surgeon
- Handler的底层原理实现
- 设计模式(二)
- MATLAB中调用Python
- ClassLoader 之 sun.misc.Launcher 源码分析