当前位置: 首页 > news >正文

如何利用又拍云玩转live photo,没有6S也能玩

Live Photo?

\\

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

\\

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

\\

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

\\

如何上云存储?

\\

既然 Live Photo 不是一种文件格式,只是一种资源对象,可以像处理普通的图片 Asset 和视频 Asset 一样,从 Live Photo Asset 中提取视频和图像文件的路径,再把视频和图片上传至云存储。

\\

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

\\

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

\\

86d408b786d1ce8c41a01669b9121501.png

\\

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

\\

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

\\

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

\\

10f9372ab3955e92872573a2467051d7.png

\\

如何在Android和PC端显示?

\\

如果能把任意图片、视频合成 Live Photo,便可以拓展 Live Photo 的使用范围。经过一些测试,用非原生的图片和视频合成 Live Photo 是可行的。

\\

既然 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 X 10.11.4 将增加信息应用查看支持。

相关文章:

  • PHP异常处理
  • Java之IO流总结
  • Java NIO系列教程(三) Buffer
  • 解决HP打印机错误:Couldn't open fifo
  • 第二章 策略模式
  • 又拍云,音视频CDN加速利器
  • HTTP真的很简单(转)
  • OAuth的机制原理讲解及开发流程
  • 【原】数据分析/数据挖掘 入门级选手建议
  • mongoDB 2.0.0 shard implemention with noauth=true
  • 三种视频格式的区分 :VGA DVI HDMI
  • SQLite
  • 转 :php 网站挂马检查
  • innodb中大字段的限制
  • PostgreSQL stream repication can implement between FreeBSD and CentOS
  • 【Leetcode】101. 对称二叉树
  • 【mysql】环境安装、服务启动、密码设置
  • ESLint简单操作
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • Java基本数据类型之Number
  • java中的hashCode
  • leetcode98. Validate Binary Search Tree
  • PAT A1092
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • 程序员最讨厌的9句话,你可有补充?
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 两列自适应布局方案整理
  • 思否第一天
  • MPAndroidChart 教程:Y轴 YAxis
  • ​2020 年大前端技术趋势解读
  • (arch)linux 转换文件编码格式
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (done) 两个矩阵 “相似” 是什么意思?
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (办公)springboot配置aop处理请求.
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (转)【Hibernate总结系列】使用举例
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • (转载)虚函数剖析
  • .NET Framework .NET Core与 .NET 的区别
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .Net IOC框架入门之一 Unity
  • .Net Web项目创建比较不错的参考文章
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET 读取 JSON格式的数据
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .net中调用windows performance记录性能信息
  • [.net] 如何在mail的加入正文显示图片
  • [8-27]正则表达式、扩展表达式以及相关实战
  • [ARC066F]Contest with Drinks Hard
  • [BZOJ 4034][HAOI2015]T2 [树链剖分]