美文网首页
iOS livephoto 2022-02-23

iOS livephoto 2022-02-23

作者: ZM_微笑向阳 | 来源:发表于2022-02-23 20:02 被阅读0次

    最近做了一个壁纸类app,涉及到了livephoto相关的内容,做个记录

    基本思路

    livephoto实际上是由一张jpg图片和一段mov视频组成,想要从网络后台获取livephoto, 后台应该是以一张图片对应一段视频的方式存储livephoto,手机端通过网络下载好对应的图片和视频之后.利用系统Photos.framew中提供的方法将图片和视频合成PHLivePhoto,之后可以通过PhotoUI中的PHLivePhotoView来展示PHLivePhoto对象,或者通过PHAssetCreationRequest的方法保存livephoto到相册

    代码实现

    首先导入framework,之后引入头文件

      #import <Photos/Photos.h>
      #import <PhotosUI/PhotosUI.h>
        在下载完图片与视频并保存在本地之后,我们通过传入下载好的视频与图片的本地url来生成       PHLivePhoto对象
    
       [PHLivePhoto requestLivePhotoWithResourceFileURLs:@[self.movUrl ,imgUrl] placeholderImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]] targetSize:self.imageView.bounds.size contentMode:PHImageContentModeAspectFill resultHandler:^(PHLivePhoto * _Nullable livePhoto, NSDictionary * _Nonnull info) {
            
        }];
    要展示livephoto, 需要创建PHLivePhotoView控件,再将上个方法得到的PHLivePhoto对象赋值给PHLivePhotoView,之后PHLivePhotoView调用播放方法就可以开始展示livephoto了
    
        self.livePhotoView = [[PHLivePhotoView alloc] init];//创建
        self.livePhotoView.livePhoto = livePhoto;// 赋值
        [self.livePhotoView startPlaybackWithStyle:PHLivePhotoViewPlaybackStyleFull]; // 播放
    

    保存livephoto到相册

     [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
                    PHAssetCreationRequest * req = [PHAssetCreationRequest creationRequestForAsset];
                    [req addResourceWithType:PHAssetResourceTypePhoto fileURL:self.imgUrl options:nil];
                    [req addResourceWithType:PHAssetResourceTypePairedVideo fileURL:self.movUrl options:nil];
                } completionHandler:^(BOOL success, NSError * _Nullable error) {
               
                    if (success) {
                        [self showMessage:@"已保存至相册"];
                    }else
                    {
                        [self showMessage:@"保存失败"];
                    }
                }];
    

    相关文章

      网友评论

          本文标题:iOS livephoto 2022-02-23

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