zoukankan      html  css  js  c++  java
  • 保存网络图片、视频到手机相册

    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:@"视频保存成功"];
        }
    }
    

    注意:此处设计到app权限,需在info.plistw文件里面增加  Privacy - Photo Library Additions Usage Description   ,不然会崩溃。

  • 相关阅读:
    linux修改键盘按键
    linux添加一个已经存在用户到一个用户组
    centos-6更新yum源(163)
    Fedora 19安装以后的优化
    centos永久性修改系统时间显示格式
    smb.conf文件详解
    Centos上部署文件共享
    centos上mysql开启远程访问
    centos安装mysql后默认密码修改
    centos上mysql的一种安装方式
  • 原文地址:https://www.cnblogs.com/OIMM/p/13601879.html
Copyright © 2011-2022 走看看