iOS LivePhoto展示与保存

最近需要做壁纸相关的东西,一开始使用的是静态壁纸,不过后来说准备做动态壁纸,也就是苹果上的LivePhoto。查了一些资料,LivePhoto包含两个部分,一部分是一张jpg图片,一部分则是一个mov视频。好像jpg图片还需要是mov视频中某一帧,之前做保存的时候,图片和视频不想关,并没有保存成功Live Photo。

在网上查了很久,发现并没有直接说动态壁纸的展示和下载,基本上说的都是从图库中进行获取并展示。不过这种很明显不是符合我的需求,没办法,只能自己进行尝试了。

首先,解决的还是保存到手机相册的问题。

因为Live Photo是由jpg和mov组成的,所以在保存到相册的时候需要一起进行保存。而且,在相册中,它们两个的名字是相同的,只是后缀不同,比如 IMG_100.jpg 和  IMG_100.mov,而且,需要注意它们后缀名的大小写问题。

接下来就是代码了,引入Photo框架,对Live Photo进行保存。

保存livephoto到手机相册

然后打开手机相册,就能发现,在手机相册中,已经包含了Live Photo照片。

然后,就是展示Live Photo照片了。当然,这个照片不是从本地相册中进行获取,从本地相册获取,网上已经有很多人给出了方法,这里就不说这种了。

导入PhotoUI框架,在请求资源后,将获取到的live Photo对象赋值给PHLivePhotoView的livePhoto对象,然后就能正常展示出来了。

请求到Live Photo并展示出来

注意:resultHandler会回调多次。

对于Live Photo的播放和停止,PHLivePhotoView有对应的方法:

- (void)startPlaybackWithStyle:(PHLivePhotoViewPlaybackStyle)playbackStyle;

- (void)stopPlayback;

还有一个代理:PHLivePhotoViewDelegate,包含两个代理方法:

- (void)livePhotoView:(PHLivePhotoView *)livePhotoView willBeginPlaybackWithStyle:(PHLivePhotoViewPlaybackStyle)playbackStyle;

- (void)livePhotoView:(PHLivePhotoView *)livePhotoView didEndPlaybackWithStyle:(PHLivePhotoViewPlaybackStyle)playbackStyle;

具体想要更深入了解研究的,可以多多探究,也欢迎大家一起探讨。

源码

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容