Live Photo 存储与应用

|关于 PHAsset 和 Live Photo 的技术实现请看《ALAsset/PHAsset 中的图片和视频文件》。

介绍

Live Photo 是在 iPhone 6s 及更新的设备上用相机拍摄的一张照片,其特点是包含了照片拍摄时刻之前和之后共3秒钟的视频。简单的说,Live Photo 由一张照片和一段3秒的视频组成,照片是 JPG 格式,视频是 MOV 格式(注:MOV 是苹果开发的一种视频格式)。浏览时,先显示图片,长按图片,播放视频。

Live Photo 的拍摄需要 iPhone 6s 及更新的手机,刚发布的 iPhone se 也是支持的。播放需要 iOS9.1 及以上系统版本 iPhone。

本质上,Live Photo 不是一种新文件格式,只是一种特别的 PHAsset(PHAsset 可以理解为一种 iPhone 相册资源对象)。

如何上云存储?

既然 Live Photo 不是一种文件格式,只是一种资源对象,如何把它存储至云平台上呢?

前面说到,Live Photo 是一种 PHAsset,那么可以像处理普通的图片 Asset 和视频 Asset 一样,从 Live Photo Asset 中提取视频和图像文件的路径,再把视频和图片上传至云存储。

显示时,从云存储上下载图片和视频,合成为 Live Photo。 对于iPhone 6s 以下设备,虽然不能在相机拍摄 Live Photo,但可以通过这种方式合成Live Photo,也算创建 Live Photo 了 ^_^

基于这个逻辑,又拍云 iOS SDK 实现了 Live Photo 图片视频 路径获取、上传、处理、下载、合成。下面上基于又拍云 iOS SDK 的 demo 演示:

第一步:Live Photo 图片视频获取。

Live Photo 图片视频获取

获取选中Live Photo 的图片和视频的保存地址。

第二步:图片视频上传及预处理。预处理是指上传时附加处理参数,上传完成后系统自动开始处理。

第三步:图片视频下载,合成 Live Photo。从云存储上下载的图片和视频合成 Live Photo。

合成 Live Photo

写到这里,不禁想是否可以把任意图片和任意视频合成 Live Photo 呢?如果能把任意图片、视频合成 Live Photo,便可以拓展 Live Photo 的使用范围。经过一些测试,用非原生的图片和视频合成 Live Photo 是可行的。

如何在Android和PC端显示?

既然 Live Photo 能在 iPhone 上显示(低版操作系统需要升级至 iOS9.1以上),在Android 和 PC 终端上可以显示吗?

答案是可以的,不过需要略做处理。

在把图片和视频上传至云储存时,附加上图片处理和视频处理参数,把图片处理成Android 和 PC 端需要的大小,把视频转码成 Android 和 PC 端支持的视频格式。显示时,可以类似 iPhone 的显示方式,先展示静态图片,Android 触屏再播放视频,PC点击再播放视频。这里仅举例描述一种典型的显示方式,具体的显示方式可以自由发挥。

特别地,视频格式建议使用 MP4,这样通用Android、PC终端。

 

Live Photo 可以在 MAC OS 上原生显示吗?

通过照片和 Safari 是可以查看的。另外,新的 Beta 版 MAC OS X10.11.4 将增加信息应用查看支持。

又拍云 iOS SDK:https://github.com/upyun/ios-sdk

又拍云 SDK:http://docs.upyun.com/download/

留下一个评论