ios - 如何将视频文件保存到文档目录

标签 ios objective-c iphone video

我正在使用以下代码捕获视频:

UIImagePickerController *ipc = [[UIImagePickerController alloc] init];
ipc.sourceType =  UIImagePickerControllerSourceTypeCamera;
ipc.delegate = self;
//need to handle delegates methods 
//
ipc.allowsEditing = YES;
ipc.videoQuality = UIImagePickerControllerQualityTypeMedium;
ipc.videoMaximumDuration = 30.0f; // 30 seconds
//temporary duation of 30 seconds for testing

ipc.mediaTypes = [NSArray arrayWithObject:@"public.movie"];
// ipc.mediaTypes = [NSArray arrayWithObjects:@"public.movie", @"public.image", nil];
[self presentModalViewController:ipc animated:YES]; 
//this controller allows to record the videos

我可以使用下面的代码将录制的视频保存到相册

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{ 
    // recover video URL
    NSURL *url = [info objectForKey:UIImagePickerControllerMediaURL];

    // check if video is compatible with album
    BOOL compatible = UIVideoAtPathIsCompatibleWithSavedPhotosAlbum([url path]);

    // save
    if (compatible){
        UISaveVideoAtPathToSavedPhotosAlbum([url path], self, @selector(video:didFinishSavingWithError:contextInfo:), NULL);
        NSLog(@"saved!!!! %@",[url path]);
    }
    [self dismissModalViewControllerAnimated:YES];
    [picker release];
}

但我需要从相册中检索该文件并存储到文档目录中?

最佳答案

将视频保存到documents目录如下:

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

    NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL];
    NSData *videoData = [NSData dataWithContentsOfURL:videoURL];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *tempPath = [documentsDirectory stringByAppendingFormat:@"/vid1.mp4"];
    BOOL success = [videoData writeToFile:tempPath atomically:NO];
    [picker dismissModalViewControllerAnimated:YES];
}

关于ios - 如何将视频文件保存到文档目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6916305/

相关文章:

ios - UINavigationController navBar 内的 UIPageViewController 中的 UITableViewController 不反弹

ios - 不兼容的指针类型将 'UITapGestureRecognizer *' 发送到类型 'UIView * _Nonnull' 的参数

iphone - 在 iPhone 上与手机互动

objective-c - 如何在 macOS 系统偏好设置中启用 FinderSync 扩展

iphone - 将 JSON 数据写入磁盘

iphone - 在没有 iTunes/越狱/AppleDev 的情况下在 iOS 上测试 Flash 游戏?

ios - 在应用程序运行时更改 util 类中的#define

ios - 返回时如何重新加载上一页

ios - 访问 iOS 7 隐藏的 UITableViewCellScrollView?

iphone - 在 UIScrollView 上添加多个 MPMoviePlayerController?