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'中包含什么?应该在该方法中包含实际的视频保存代码。