获取相册图片
//创建imgPickerCtrl
UIImagePickerController *imgPickerCtrl = [[UIImagePickerController alloc] init];
//设置代理
imgPickerCtrl.delegate = self;
//设置资源类型
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;
}
//支持就创建UIImagePickerController
UIImagePickerController *pickerCtrl = [[UIImagePickerController alloc] init];
//设置代理
pickerCtrl.delegate = self;
//设置sourceType
pickerCtrl.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentViewController:pickerCtrl animated:YES completion:nil];
获取本地视频
UIImagePickerController *imgPickerCtrl = [[UIImagePickerController alloc] init];
imgPickerCtrl.delegate = self;
imgPickerCtrl.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
//自定媒体类型
imgPickerCtrl.mediaTypes = @[@"public.movie"];
[self presentViewController:imgPickerCtrl animated:YES completion:nil];
调用摄像头拍摄视频
UIImagePickerController *imgPickerCtrl = [[UIImagePickerController alloc] init];
imgPickerCtrl.delegate = self;
imgPickerCtrl.sourceType = UIImagePickerControllerSourceTypeCamera;
imgPickerCtrl.mediaTypes = @[@"public.movie"];
[self presentViewController:imgPickerCtrl animated:YES completion:nil];
实现代理方法
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
NSLog(@"info:%@",info);
NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
if ([mediaType isEqualToString:@"public.image"]) {
//获取选中的图片
UIImage *img = [info objectForKey:UIImagePickerControllerOriginalImage];
_imgView.image = img;
//如果图片是通过camera拍摄的,则保存到本地
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];
}
//图片保存成功后调用的方法
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {
NSLog(@"图片保存成功");
}