保存时didFinishPickingMediaWithInfo重复文件

时间:2012-05-18 11:42:21

标签: ios uiimagepickercontroller

我有一个简单的应用程序,你可以从照片库中选择一个现有的视频,或者你可以用UIImagePickerController拍摄一个视频。

我添加了以下代码,当我使用相机制作新视频时,如果将来需要,我可以将其保存在照片库中。

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

// Get the selected Video.
NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL];
// Convert to Video data.
NSData *imageData = [NSData dataWithContentsOfURL:videoURL];

// Save Video to Photo Album
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
NSURL *recordedVideoURL= [info objectForKey:UIImagePickerControllerMediaURL];
if ([library videoAtPathIsCompatibleWithSavedPhotosAlbum:recordedVideoURL]) {
    [library writeVideoAtPathToSavedPhotosAlbum:recordedVideoURL
                                completionBlock:^(NSURL *assetURL, NSError *error){}
     ];
} 
[library release];

[picker dismissModalViewControllerAnimated:NO];

}

现在我的问题是当我从照片库中选择一个视频时,这个视频会被复制,因为这段代码总是会保存一个新视频。

是否可以检测您是否从照片库中选择了视频?

1 个答案:

答案 0 :(得分:2)

在保存视频之前,请检查imagePickerController的 sourceType 。仅当sourceType为 UIImagePickerControllerSourceTypeCamera 时才保存视频。

if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) {
    // Save the video 
}