使用UISaveVideoAtPathToSavedPhotosAlbum重命名文件?

时间:2009-11-10 07:55:13

标签: iphone

但我希望在保存之前从URL下载视频并重命名该视频的文件。我使用 UISaveVideoAtPathToSavedPhotosAlbum ?任何帮助......我必须做什么?

 NSData *imageData = [NSData dataWithContentsOfURL:[NSURL  
 URLWithString:@"www.xyz.com/image.mp4"]];

2 个答案:

答案 0 :(得分:4)

你会做这样的事情:

- (void) downloadVideo
   NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.xyz.com/image.mp4"]];
   NSString *tempPath = [NSString stringWithFormat:@"%@/%@", NSTemporaryDirectory(), temp.mp4];
   [imageData writeToFile:tempPath atomically:NO];
   UISaveVideoAtPathToSavedPhotosAlbum (@ tempPath, self, @selector(video:didFinishSavingWithError: contextInfo:), nil);
);

- (void) video: (NSString *) videoPath
    didFinishSavingWithError: (NSError *) error
    contextInfo: (void *) contextInfo {
  NSLog(@"Finished saving video with error: %@", error);
}

您需要注意两件事:

  1. 确保指定URL的方案。这不是一个浏览器,它不会尝试自动填充http并猜测你。
  2. 如果这是在主线程上,则会在dataWithContentsOfURL:发生时导致同步停顿。如果主线程停止超过20秒,手机将认为应用程序已陷入无限循环并将​​其终止。因此,如果此代码位于主线程上,则需要将其移至后台线程或使用NSURLConnection移至异步下载。

答案 1 :(得分:0)

我遇到了同样的问题,解决了将正在保存的文件的扩展名从.mpg更改为.mp4的问题。显然UISaveVideoAtPathToSavedPhotosAlbum期望正确的扩展,但从文档中我不清楚这是一个要求:

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIKitFunctionReference/Reference/reference.html