我有一个简单的应用程序,你可以从照片库中选择一个现有的视频,或者你可以用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];
}
现在我的问题是当我从照片库中选择一个视频时,这个视频会被复制,因为这段代码总是会保存一个新视频。
是否可以检测您是否从照片库中选择了视频?
答案 0 :(得分:2)
在保存视频之前,请检查imagePickerController的 sourceType 。仅当sourceType为 UIImagePickerControllerSourceTypeCamera 时才保存视频。
if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) {
// Save the video
}