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