Search code examples
ioscocoa-touchphotokitios9.1phlivephoto

Is there a way to save a Live Photo to the Photo Library?


I'm passing stored image and video files to: PHLivePhoto.requestLivePhotoWithResourceFileURLs and getting a PHLivePhoto object that I can display in PHLivePhotoView. But I am wondering, once I have a PHLivePhoto is there a way to save it to the Photo Library?


Solution

  •     NSURL *photoURL = ...;
        NSURL *videoURL = ...;   
    
        [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
                PHAssetCreationRequest *request = [PHAssetCreationRequest creationRequestForAsset];
    
    
                //These types should be inferred from your files
    
                //PHAssetResourceCreationOptions *photoOptions = [[PHAssetResourceCreationOptions alloc] init];
                //photoOptions.uniformTypeIdentifier = @"public.jpeg";
    
                //PHAssetResourceCreationOptions *videoOptions = [[PHAssetResourceCreationOptions alloc] init];
                //videoOptions.uniformTypeIdentifier = @"com.apple.quicktime-movie";
    
                [request addResourceWithType:PHAssetResourceTypePhoto fileURL:photoURL options:nil /*photoOptions*/];
                [request addResourceWithType:PHAssetResourceTypePairedVideo fileURL:videoURL options:nil /*videoOptions*/];
    
            } completionHandler:^(BOOL success, NSError * _Nullable error) {
                NSLog(@"success? %d, error: %@",success,error);
            }];