美文网首页iOS 开发相关iOS随记
iOS LivePhoto展示与保存

iOS LivePhoto展示与保存

作者: valiant_xin | 来源:发表于2018-03-26 18:17 被阅读948次

    最近需要做壁纸相关的东西,一开始使用的是静态壁纸,不过后来说准备做动态壁纸,也就是苹果上的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;

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

    源码

    相关文章

      网友评论

        本文标题:iOS LivePhoto展示与保存

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