美文网首页
iOS 几个常用保存视频到相册的方法

iOS 几个常用保存视频到相册的方法

作者: winsonGali | 来源:发表于2019-04-23 17:09 被阅读0次

    目前知道的三种方法可以保存视频至本地相册:
    方法一:iOS3 之后一直可以使用,兼容性极强;
    方法二:支持 iOS9 以前,在 iOS9 之后被弃用;
    方法二:在 iOS8 之后可以使用,一直沿用至今。

    1、UIKIT_EXTERN 全局方法

    BOOL videoCompatible = UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(item.savePath);
    //检查视频能否保存至相册
    if (videoCompatible) {
        UISaveVideoAtPathToSavedPhotosAlbum(item.savePath, self,
    @selector(video:didFinishSavingWithError:contextInfo:), nil);
    } else {
        NSLog(@"该视频无法保存至相册");
    }
    
    - (void)video:(NSString *)videoPath didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {
        if (error) {
            NSLog(@"保存视频失败:%@", error);
        } else {
            NSLog(@"保存视频成功");
        }
    }
    

    2、ALAssetsLibrary(iOS 9 废弃)

    //#import <AssetsLibrary/AssetsLibrary.h>
    ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
    [library writeVideoAtPathToSavedPhotosAlbum:[NSURL fileURLWithPath:item.savePath]
                                completionBlock:^(NSURL *assetURL, NSError *error) {
                                    if (error) {
                                        NSLog(@"Save video fail:%@",error);
                                    } else {
                                        NSLog(@"Save video succeed.");
                                    }
                                }];
    

    3、PHPhotoLibrary(iOS 8 支持)

    //#import <Photos/Photos.h>
    PHPhotoLibrary *photoLibrary = [PHPhotoLibrary sharedPhotoLibrary];
    [photoLibrary performChanges:^{
        [PHAssetChangeRequest creationRequestForAssetFromVideoAtFileURL:[NSURL
    fileURLWithPath:item.savePath]];
    } completionHandler:^(BOOL success, NSError * _Nullable error) {
        if (success) {
            NSLog(@"已将视频保存至相册");
        } else {
            NSLog(@"未能保存视频到相册");
        }
    }];
    

    相关文章

      网友评论

          本文标题:iOS 几个常用保存视频到相册的方法

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