//選擇照片
- (IBAction)selectedPhoto:(id)sender {
UIImagePickerController *pickVC = [[UIImagePickerController alloc] init];
/*
UIImagePickerControllerSourceTypePhotoLibrary, 顯示所有文件夾
UIImagePickerControllerSourceTypeCamera, 調用系統攝像頭
UIImagePickerControllerSourceTypeSavedPhotosAlbum 顯示內置文件夾
*/
pickVC.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
pickVC.delegate = self;
[self presentViewController:pickVC animated:YES completion:nil];
}
//拍照
- (IBAction)cameraPhoto:(id)sender {
//判斷當前設備是否有攝像頭
BOOL isCamer = [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear];
if (!isCamer) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:@"沒有可用攝像頭" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil, nil];
[alertView show];
return;
}
UIImagePickerController *pickVC = [[UIImagePickerController alloc] init];
//指定資源的來源:來自攝像頭
pickVC.sourceType = UIImagePickerControllerSourceTypeCamera;
pickVC.delegate = self;
[self presentViewController:pickVC animated:YES completion:NULL];
}
//選擇視頻資源
- (IBAction)selectVedio:(id)sender {
UIImagePickerController *pickVC = [[UIImagePickerController alloc] init];
/*
UIImagePickerControllerSourceTypePhotoLibrary, 顯示所有文件夾
UIImagePickerControllerSourceTypeCamera, 調用系統攝像頭
UIImagePickerControllerSourceTypeSavedPhotosAlbum 顯示內置文件夾
*/
pickVC.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
pickVC.delegate = self;
//指定選擇媒體資源類型 public.movie 視頻類型 public.image 照片類型
pickVC.mediaTypes = @[@"public.movie"];
[self presentViewController:pickVC animated:YES completion:nil];
}
//拍視頻
- (IBAction)camerVadio:(id)sender {
//判斷當前設備是否有攝像頭
BOOL isCamer = [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear];
if (!isCamer) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:@"沒有可用攝像頭" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil, nil];
[alertView show];
return;
}
UIImagePickerController *pickVC = [[UIImagePickerController alloc] init];
/*
UIImagePickerControllerSourceTypePhotoLibrary, 顯示所有文件夾
UIImagePickerControllerSourceTypeCamera, 調用系統攝像頭
UIImagePickerControllerSourceTypeSavedPhotosAlbum 顯示內置文件夾
*/
pickVC.sourceType = UIImagePickerControllerSourceTypeCamera;
pickVC.delegate = self;
//指定選擇媒體資源類型 public.movie 視頻類型 public.image 照片類型
pickVC.mediaTypes = @[@"public.movie"];
[self presentViewController:pickVC animated:YES completion:nil];
}
#pragma mark -UIImagePickerControllerDelegate
//選擇一個照片、或者視頻調用的協議方法
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
if ([mediaType isEqualToString:@"public.image"]) {
//圖片
//獲取圖片
UIImage *img = [info objectForKey:UIImagePickerControllerOriginalImage];
self.imgView.image = img;
//判斷照片的來源是否來自攝像頭
if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) {
//將圖片保存至相冊
UIImageWriteToSavedPhotosAlbum(img, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);
}
}else if([mediaType isEqualToString:@"public.movie"]) {
// UIImagePickerControllerReferenceURL
//1.獲取到此資源的url地址
NSURL *url = [info objectForKey:UIImagePickerControllerMediaURL];
//2.創建視頻播放器
MPMoviePlayerViewController *moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
//3.彈出視頻播放控制器,自動播放
[self presentMoviePlayerViewControllerAnimated:moviePlayer];
}
//關閉模態視圖
[picker dismissViewControllerAnimated:YES completion:nil];
}
//通過UIImageWriteToSavedPhotosAlbum 保存圖片成功以後,調用的方法
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
{
NSLog(@"保存成功");
}