UIImagePickerController的使用
通過UIImagePickerController獲取本地圖片,視頻以及調用手機攝像頭拍攝
獲取相冊圖片
//創建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(@"圖片保存成功"); }
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!