iOS保存图片和视频到相册

作者: 李二侠 | 来源:发表于2017-06-26 09:54 被阅读3961次

    1.保存图片到相册

     //image是要保存的图片
    - (void) saveImage:(UIImage *)image{
    
        if (image) {
    
            UIImageWriteToSavedPhotosAlbum(image, self, @selector(savedPhotoImage:didFinishSavingWithError:contextInfo:), nil);
    
        };
    
    }
    //保存完成后调用的方法
    - (void) savedPhotoImage:(UIImage*)image didFinishSavingWithError: (NSError *)error contextInfo: (void *)contextInfo {
        if (error) {
            NSLog(@"保存图片出错%@", error.localizedDescription);
        }
        else {
            NSLog(@"保存图片成功");
        }
    }
    

    2.保存视频到相册

    //videoPath为视频下载到本地之后的本地路径
    - (void)saveVideo:(NSString *)videoPath{
    
        if (_videoPath) {
    
                if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum([_videoPath path])) {
                    //保存相册核心代码
                    UISaveVideoAtPathToSavedPhotosAlbum([_videoPath path], self, @selector(video:didFinishSavingWithError:contextInfo:), nil);
                }
            
        }
    
    }
    //保存视频完成之后的回调
    - (void)video:(NSString *)videoPath didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {
        if (error) {
            NSLog(@"保存视频失败%@", error.localizedDescription);
        }
        else {
            NSLog(@"保存视频成功");
        }
      
    }
    

    相关文章

      网友评论

      • 南巷北往:保存视频的回调函数写错啦,应该是
        - (void)video:(NSString *)videoPath didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{
        if (error) {
        保存失败
        }else{
        保存成功
        }
        找了好久才把这个错误纠正,下载视频保存然后成功了,不过还是要感谢楼主


        }
        李二侠:感谢提醒,确实写错了,是我不小心复制错了
      • littleDad:你这个 代码 粘贴 质量 很差 →
      • 琉璃艺术:你好,请问下,你这个视频地址是整个视频地址的沙河路径嘛?我这总报错cannot be saved to the saved photos album: Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" UserInfo={NSLocalizedFailureReason=An unknown error occurred (-12894), NSLocalizedDescription=The operation could not be completed,你能给我一个你的videoPath嘛?我看下路径格式,谢谢
        琉璃艺术:@李二侠 我这个下载没问题,下载下来了,我沙河里能看见,就是拿沙河路径保存到相册时保存不了
        李二侠:AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
        NSURL *url = [NSURL URLWithString:urlStr];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];

        NSURLSessionDownloadTask *task = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) {

        LSLog(@"%f",1.0 * downloadProgress.completedUnitCount / downloadProgress.totalUnitCount);

        } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {

        //设置下载路径,并将文件写入沙盒,最后返回NSURL对象
        NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
        NSString *path = [cachesPath stringByAppendingPathComponent:response.suggestedFilename];
        LSLog(@"path = %@",path);
        return [NSURL fileURLWithPath:path];

        } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {

        // 这里的filePath就是保存路径
        LSLog(@"filePath = %@",filePath);
        LSLog(@"错误了 = %@",error.description);

        }];

        [task resume];

        //这是我用afn时设置下载路径的方式,那个filePath就是要用的保存路径
      • ab92595f2cb6:保存后在相册里面找不到视频,能解答一下吗
        ab92595f2cb6:@李二侠 不好意思啊,我昨天刚评论完检查代码就发现视频地址错了,昨天改对地址后就可以了。感谢回复
        李二侠:@陳傢厷 视频路径确定没问题吗?
      • 50af5fd38486:兄弟!UIVideoAtPathIsCompatibleWithSavedPhotosAlbum([_videoPath path]这个怎么总是no 是因为保存的视频有什么限制吗?
        李二侠:你是不是拒绝了访问相册的权限
      • 后青春期的诗大喵:第二个方法有问题

      本文标题:iOS保存图片和视频到相册

      本文链接:https://www.haomeiwen.com/subject/psudcxtx.html