iOS livephtot获取,展示,保存

iOS livephtot获取,展示,保存1 iosphlivepho

最近做了一个壁纸类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 livephtot获取,展示,保存分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2025-07-15 07:01
下一篇 2025-10-09 20:17

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/4492.html