4
我開始只是一個NSString是一個.mp4文件的URL,並從這裏我想有該視頻保存到設備相機卷。看起來我只能保存.mov文件,所以我必須先轉換.mp4,但是我看到的關於此的幾篇文章沒有幫助。保存mp4視頻到設備相機卷
任何人都可以幫我完成這件事嗎?
在此先感謝...
我開始只是一個NSString是一個.mp4文件的URL,並從這裏我想有該視頻保存到設備相機卷。看起來我只能保存.mov文件,所以我必須先轉換.mp4,但是我看到的關於此的幾篇文章沒有幫助。保存mp4視頻到設備相機卷
任何人都可以幫我完成這件事嗎?
在此先感謝...
您可以保存MP4文件到相機膠捲只要使用supported codecs。例如:
NSURL *sourceURL = [NSURL URLWithString:@"http://path/to/video.mp4"];
NSURLSessionTask *download = [[NSURLSession sharedSession] downloadTaskWithURL:sourceURL completionHandler:^(NSURL *location, NSURLResponse *response, NSError *error) {
NSURL *documentsURL = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] firstObject];
NSURL *tempURL = [documentsURL URLByAppendingPathComponent:[sourceURL lastPathComponent]];
[[NSFileManager defaultManager] moveItemAtURL:location toURL:tempURL error:nil];
UISaveVideoAtPathToSavedPhotosAlbum(tempURL.path, nil, NULL, NULL);
}];
[download resume];
或者,在iOS 6及以上:
NSURL *sourceURL = [NSURL URLWithString:@"http://path/to/video.mp4"];
NSURLRequest *request = [NSURLRequest requestWithURL:sourceURL];
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
NSURL *documentsURL = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] firstObject];
NSURL *tempURL = [documentsURL URLByAppendingPathComponent:[sourceURL lastPathComponent]];
[data writeToURL:tempURL atomically:YES];
UISaveVideoAtPathToSavedPhotosAlbum(tempURL.path, nil, NULL, NULL);
}];
非常感謝你對你的投入,你的解決方案似乎在iOS的7完美地工作,但我需要使其工作在iOS 6.1+。有任何想法嗎? – SeanT
您必須使用NSURLConnection或第三方庫下載文件。您仍然想將其寫入臨時文件,然後調用「UISaveVideoAtPathToSavedPhotosAlbum」。 – jonahb
@SeanT,我添加了一個iOS 6的例子。 – jonahb