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

目前知道的三种方法可以保存视频至本地相册:
方法一: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 
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 
PHPhotoLibrary *photoLibrary = [PHPhotoLibrary sharedPhotoLibrary];
[photoLibrary performChanges:^{
    [PHAssetChangeRequest creationRequestForAssetFromVideoAtFileURL:[NSURL
fileURLWithPath:item.savePath]];
} completionHandler:^(BOOL success, NSError * _Nullable error) {
    if (success) {
        NSLog(@"已将视频保存至相册");
    } else {
        NSLog(@"未能保存视频到相册");
    }
}];

你可能感兴趣的:(iOS 几个常用保存视频到相册的方法)