關於選擇照片和拍照

//選擇照片

- (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(@"保存成功");

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章