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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!