Ios 仅当';保存';按钮被点击

Ios 仅当';保存';按钮被点击,ios,objective-c,xcode6,uiimagepickercontroller,Ios,Objective C,Xcode6,Uiimagepickercontroller,我可以使用以下代码在我的应用程序上录制视频和播放: - (IBAction)recordVideo:(id)sender { if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.d

我可以使用以下代码在我的应用程序上录制视频和播放:

- (IBAction)recordVideo:(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)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

    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, 40, 320, 385)];
  [self.view addSubview:self.videoController.view];

  [self.videoController play];
}
我还知道,播放时可以使用以下方法保存视频:

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

  NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
  if ([mediaType isEqualToString:@"public.movie"]){
    // Saving the video / // Get the new unique filename
  NSString *sourcePath = [[info  objectForKey:@"UIImagePickerControllerMediaURL"]relativePath];
    UISaveVideoAtPathToSavedPhotosAlbum(sourcePath,nil,nil,nil);
}

但是如何使用不同的按钮操作保存视频(例如:“保存视频”)?

完成视频录制或拾取过程后,
-(void)imagePickerController:(UIImagePickerController*)picker完成了用info:(NSDictionary*)选择媒体info
UIImagePickerController的方法为您提供视频的路径,这是临时路径(实现中的
源路径
字符串)。所以,你要做的是

1) 删除
UISaveVideoAtPathToSavedPhotosAlbum(sourcePath,nil,nil,nil)
避免录制后立即保存视频

2) 将视频文件复制或移动到另一个路径,可能是应用程序沙箱中的
文档
临时
目录,并存储/保存该路径

3) 当用户点击保存按钮时,使用
UISaveVideoAtPathToSavedPhotosAlbum(videoPath,nil,nil,nil)将视频保存到照片中
videoPath
是您复制/移动视频文件的路径)


希望这有帮助

感谢您对sourcePath的解释。要调用该方法,我应该在'-(iAction)saveVideo:(id)sender'中包含什么?应该在该方法中包含实际的视频保存代码。