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…
NSLog(@"图片保存失败");
} else { // Show message image successfully saved
NSLog(@"图片保存成功");
}
}
2.保存网络视频到手机相册
- (void)playerDownload:(NSString *)url{
NSLog(@"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) {
NSLog(@"%@",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 showHintMiddle:@"视频保存失败"];
} else {
NSLog(@"保存视频成功");
}
}