在iOS中保存/检索视频文件

时间:2011-05-13 23:05:20

标签: iphone ios video nsdata

我一直在浏览,但无法找到问题的解决方案。我正在尝试将一些视频文件保存到我的应用程序目录中,如下所示:

  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

// the path to write file
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"myFile"];
NSLog(@"%@",appFile);

[[NSUserDefaults standardUserDefaults] setValue:appFile forKey:@"videoURL"];
[[NSUserDefaults standardUserDefaults]synchronize];
NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL];
NSData *webData = [NSData dataWithContentsOfURL:videoURL];
[webData writeToFile:appFile atomically:YES];

我的问题是,这是保存电影文件的正确方法吗?如果是,我如何将NSData转换为可以通过MPMoviePlayer播放的文件?谢谢你的帮助。

PS。我真的不想使用照片库,因为应用程序可能会容纳相当数量的视频。

1 个答案:

答案 0 :(得分:4)

如果您确实要将其保存在应用的文档中,则必须使用NSFileManager

它可能看起来像那样

NSString* completeFileName = [NSString stringWithFormat:@"%@",movieName];
NSString* filename = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:completeFileName];

[[NSFileManager defaultManager] createFileAtPath:filename contents:yourMovieData attributes:nil];

您可能还需要使用NSFileHandle

要阅读MPMoviePlayer中的视频,如果您认为可以像这样制作NSURL

[NSURL fileURLWithPath:path isDirectory:NO];

然后你将该网址提供给你的MPMoviePlayer。

我希望这会对你有所帮助。