Ios 在同一视图上捕获照片并录制视频

Ios 在同一视图上捕获照片并录制视频,ios,objective-c,xcode,video-capture,Ios,Objective C,Xcode,Video Capture,我很难弄清楚,如何在同一个视图上拍摄照片和录制视频,因为两者使用的方法是相同的。 我试过了,但仍然不清楚代码是否正确 如果有人检查代码并告诉我它是否正确,我将不胜感激 代码如下: - (IBAction)CaptureRubbish:(id)sender { UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.delegate = self; picker.al

我很难弄清楚,如何在同一个视图上拍摄照片和录制视频,因为两者使用的方法是相同的。 我试过了,但仍然不清楚代码是否正确

如果有人检查代码并告诉我它是否正确,我将不胜感激

代码如下:

 - (IBAction)CaptureRubbish:(id)sender {
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.allowsEditing = YES;
    picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

    [self presentViewController:picker animated:YES completion:NULL];
}

- (IBAction)RecordRubbish:(id)sender {
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 
        UIImagePickerController *picker = [[UIImagePickerController alloc] init];
        picker.delegate = self;
        picker.allowsEditing = YES;
        picker.sourceType = UIImagePickerControllerSourceTypeCamera;
        picker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil];

        [self presentViewController:picker animated:YES completion:NULL];
    }
}


- (void)videoPlayBackDidFinish:(NSNotification *)notification {

    [[NSNotificationCenter defaultCenter]removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:nil];

    // Stop the video player and remove it from view
    [self.videoController stop];
    [self.videoController.view removeFromSuperview];
    self.videoController = nil;

    // Display a message
    UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Video Playback" message:@"Just finished the video playback. The video is now removed." preferredStyle:UIAlertControllerStyleAlert];
    UIAlertAction *okayAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil];
    [alertController addAction:okayAction];
    [self presentViewController:alertController animated:YES completion:nil];

}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

    UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
    self->ImageVIew.image = chosenImage;

    [picker dismissViewControllerAnimated:YES completion:NULL];

    self.videoURL = info[UIImagePickerControllerMediaURL];
    [picker dismissViewControllerAnimated:YES completion:NULL];

    self.videoController = [[MPMoviePlayerController alloc] init];

    [self.videoController setContentURL:self.videoURL];
    [self.videoController.view setFrame:CGRectMake (0, 0, self.view.frame.size.width, 460)];
    [self.view addSubview:self.videoController.view];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(videoPlayBackDidFinish:)
                                             name:MPMoviePlayerPlaybackDidFinishNotification
                                           object:self.videoController];
    [self.videoController play];

}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {

    [picker dismissViewControllerAnimated:YES completion:NULL];

}

-(void)imagePickerController:(UIImagePickerController*)PickerDidFinishPickingMediaWithInfo:(NSDictionary*)info{}在这种方法中,您可以使用put one if为照片和视频编写代码condition@HimanshuMoradiya我应该在if-else条件下加什么?这是目标c的答案
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
   if (info[UIImagePickerControllerMediaType] == (NSString *) kUTTypeImage) {
     // here your image capture code
   }
   else if(info[UIImagePickerControllerMediaType]== (NSString *)kUTTypeMovie)
   {
      // here your video capture code
   }
   [picker dismissViewControllerAnimated:YES completion:NULL];

}