访问相册

本文详细介绍了如何使用UIImagePickerController组件在iOS应用中获取本地相册图片、摄像头图片与视频,并通过判断资源类型实现不同场景的图片与视频获取与处理,包括前置/后置摄像头的启用、视频媒体类型的指定以及最终通过didFinishPickingMediaWithInfo方法判断并处理选中按钮以执行相应操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UIImagePickerController创建一个对象,
    //设置代理
    imgPickerCtrl.delegate = self;

1.获取本地相册图片

    //设置资源类型
    imgPickerCtrl.
sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
   
//弹出模态
    [self presentViewController:imgPickerCtrl animated:YES completion:nil];

点击”获取本地相册图片”,效果图:



//获取摄像头图片
判断摄像头的类型:前置/后置,有/无
 BOOL isAvailable = [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear];
   
   
if (!isAvailable) {
       
//如果没有摄像头,弹出框提示
       
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"提示" message:@"当前没有可用摄像头" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
        [alertView
show];
       
       
return;
    }
    //如果有,就启用摄像头拍照
    imgPickerCtrl.sourceType = UIImagePickerControllerSourceTypeCamera;
    [
self presentViewController:imgPickerCtrl animated:YES completion:nil];
   

/**
 * 
获取本地视频
 */
 imgPickerCtrl.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
   
//指定媒体类型,比如public.movie
imgPickerCtrl.mediaTypes = @[@"public.movie"];  
[self presentViewController:imgPickerCtrl animated:YES completion:nil];
   
/**
 * 
获取摄像头视频
 */
    imgPickerCtrl.sourceType = UIImagePickerControllerSourceTypeCamera;
   
   
//指定媒体类型
    imgPickerCtrl.
mediaTypes = @[@"public.movie"];
   
    [
self presentViewController:imgPickerCtrl animated:YES completion:nil];
    


通过 UIImagePickerController的选中方法didFinishPickingMediaWithInfo:判断选中的是那个按钮以做出相应操作;
    //取得mediaType,判断是图片还是视频
    NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
  
//如果是图片
    if ([mediaType isEqualToString:@"public.image"]) {
       
       
//获取选中的图片
       
UIImage *img = [info objectForKey:UIImagePickerControllerOriginalImage];
       
_imgView.image = img;
       
       
//如果是摄像头拍摄的则保存到本地
       
if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) {
           
//将图片写到本地
           
UIImageWriteToSavedPhotosAlbum(img, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
        }
       
    }
else if ([mediaType isEqualToString:@"public.movie"]){//视频
       
//获取视图的url
       
NSURL *url = [info objectForKey:UIImagePickerControllerReferenceURL];
       
       
//播放器播放(还没学)
    }

   
//关闭当前的模态视图
    [
self dismissViewControllerAnimated:YES completion:nil];
    

保存摄像头图片后还可以用 didFinishSavingWithError:方法进行操作,比如用弹出框提示@“保存成功"
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值