ios 保存网络图片和视频到手机相册
2018-01-10 本文已影响902人
我是七月
奋斗的七月
夜深了,话不多说,直接撸代码
1.保存网络图片到手机相册
- (void)toSaveImage:(Nsstring *)urlString {
NSURL *url = [NSURL URLWithString: urlString];
SDWebImageManager *manager = [SDWebImageManager sharedManager];
UIImage *img;
if ([manager diskImageExistsForURL:url])
{
img = [[manager imageCache] imageFromDiskCacheForKey:url.absoluteString];
}
else
{
//从网络下载图片
NSData *data = [NSData dataWithContentsOfURL:url];
img = [UIImage imageWithData:data];
}
// 保存图片到相册中
UIImageWriteToSavedPhotosAlbum(img,self, @selector(image:didFinishSavingWithError:contextInfo:),nil);
}
//保存图片完成之后的回调
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error
contextInfo:(void *)contextInfo
{
// Was there an error?
if (error != NULL)
{
// Show error message…
[self showHintMiddle:@"图片保存失败"];
}
else // No errors
{
// Show message image successfully saved
[self showHintMiddle:@"图片保存成功"];
}
}
2.保存网络视频到手机相册
//-----下载视频--
- (void)playerDownload:(NSString *)url{
[self showWaitHint:@""];
DDLog(@"urlurlurlurl===%@",url);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
NSString *fullPath = [NSString stringWithFormat:@"%@/%@", documentsDirectory, @"jaibaili.mp4"];
NSURL *urlNew = [NSURL URLWithString:url];
NSURLRequest *request = [NSURLRequest requestWithURL:urlNew];
NSURLSessionDownloadTask *task =
[manager downloadTaskWithRequest:request
progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
return [NSURL fileURLWithPath:fullPath];
}
completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
DDLog(@"%@",response);
[self saveVideo:fullPath];
}];
[task resume];
}
//videoPath为视频下载到本地之后的本地路径
- (void)saveVideo:(NSString *)videoPath{
if (videoPath) {
NSURL *url = [NSURL URLWithString:videoPath];
BOOL compatible = UIVideoAtPathIsCompatibleWithSavedPhotosAlbum([url path]);
if (compatible)
{
//保存相册核心代码
UISaveVideoAtPathToSavedPhotosAlbum([url path], self, @selector(savedPhotoImage:didFinishSavingWithError:contextInfo:), nil);
}
}
}
//保存视频完成之后的回调
- (void) savedPhotoImage:(UIImage*)image didFinishSavingWithError: (NSError *)error contextInfo: (void *)contextInfo {
if (error) {
NSLog(@"保存视频失败%@", error.localizedDescription);
[self hideHUD];
[self showHintMiddle:@"视频保存失败"];
}
else {
NSLog(@"保存视频成功");
[self hideHUD];
[self showHintMiddle:@"视频保存成功"];
}
}