但我希望在保存之前从URL下载视频并重命名该视频的文件。我使用 UISaveVideoAtPathToSavedPhotosAlbum ?任何帮助......我必须做什么?
NSData *imageData = [NSData dataWithContentsOfURL:[NSURL
URLWithString:@"www.xyz.com/image.mp4"]];
答案 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);
}
您需要注意两件事:
dataWithContentsOfURL:
发生时导致同步停顿。如果主线程停止超过20秒,手机将认为应用程序已陷入无限循环并将其终止。因此,如果此代码位于主线程上,则需要将其移至后台线程或使用NSURLConnection移至异步下载。答案 1 :(得分:0)
我遇到了同样的问题,解决了将正在保存的文件的扩展名从.mpg更改为.mp4的问题。显然UISaveVideoAtPathToSavedPhotosAlbum期望正确的扩展,但从文档中我不清楚这是一个要求: