更新记录

0.0.2(2025-09-01)

  • fix: 去除多余函数。

0.0.1(2025-09-01)

  • 初始版本
  • 实现基础的Live Photo生成功能
  • 支持自定义视频时长、尺寸和帧提取时间点
  • 支持进度回调,实时监控生成过程
  • 支持iOS平台
  • 提供完整的错误处理机制
  • 添加详细的接口文档和使用示例

平台兼容性

云端兼容性

阿里云 腾讯云 支付宝云

uni-app(4.73)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - - - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - -

uni-app x(4.74)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - - - -

lime-live-photo Live Photo插件

一个实用的Live Photo生成插件,用于将视频转换为iOS风格的Live Photo。支持自定义视频时长、尺寸、帧提取时间点等配置。插件提供了多种自定义选项,可用于Live Photo生成需求。

文档链接

📚 插件详细文档请访问以下站点:

安装方法

  1. 在uni-app插件市场中搜索并导入lime-live-photo
  2. 导入后可能需要重新编译项目

代码演示

基础用法

最简单的Live Photo组件用法,只需要设置视频路径即可。

// uniapp非ts无须导入type LivePhotoOptions
import { getLivePhoto, type LivePhotoOptions } from '@/uni_modules/lime-live-photo'

getLivePhoto({
  path: '视频文件路径',
  success: (res) => {
    console.log('生成成功', res.tempFilePaths)
  },
  fail: (err) => {
    console.error('生成失败', err)
  }
  // uniapp非ts无须as LivePhotoOptions
} as LivePhotoOptions)

自定义参数

可以自定义视频时长、尺寸和帧提取时间点。

import { getLivePhoto , type LivePhotoOptions } from '@/uni_modules/lime-live-photo'

getLivePhoto({
  path: '视频文件路径',
  duration: 1.5,        // 自定义时长(秒)
  width: 1080,          // 自定义宽度
  height: 1920,         // 自定义高度
  frameTime: 0.8,       // 自定义帧提取时间点(秒)
  success: (res) => {
    console.log('生成成功', res.tempFilePaths)
  },
  fail: (err) => {
    console.error('生成失败', err)
  }
} as LivePhotoOptions)

带进度回调

添加进度回调,实时监控Live Photo生成过程。

import { getLivePhoto, type LivePhotoOptions } from '@/uni_modules/lime-live-photo'

getLivePhoto({
  path: '视频文件路径',
  success: (res) => {
    console.log('生成成功', res.tempFilePaths)
  },
  fail: (err) => {
    console.error('生成失败', err)
  },
  progress: (status, percent) => {
    console.log(`当前状态: ${status}, 进度: ${percent}%`)
    // status可能的值: 'processing', 'extracting', 'generating', 'saving'
  }
} as LivePhotoOptions)

API文档

方法

getLivePhoto(options)

将视频转换为Live Photo格式。

Options 参数说明

参数名 说明 类型 默认值
path 视频文件路径 string -
duration 目标时长(秒) number 0.92
width 目标宽度 number 1080
height 目标高度 number 1920
frameTime 提取帧的时间点(秒) number 0.5
success 成功回调函数 (res: LivePhotoResult) => void -
fail 失败回调函数 (res: LivePhotoFail) => void -
complete 完成回调函数 (res: any) => void -
progress 进度回调函数 (status: LivePhotoStatus, percent: number) => void -

LivePhotoResult 返回结果

属性名 说明 类型
tempFilePaths 生成的文件路径数组,包含图片和视频文件路径 string[]
duration 视频时长(秒) number
width 视频宽度 number
height 视频高度 number
identifier Live Photo的唯一标识符 string

LivePhotoStatus 状态类型

说明
processing 处理中
extracting 提取帧中
generating 生成中
saving 保存中

错误码

错误码 说明
9010000 未知错误
9010001 无法找到metadata.mov资源文件
9010002 调整视频时长失败
9010003 调整视频速度失败
9010004 调整视频尺寸失败
9010005 提取视频帧失败
9010006 无法提取视频帧
9010007 生成Live Photo视频部分失败
9010008 保存Live Photo到相册失败
9010009 输入文件不存在或无法访问

实现原理

Live Photo组件通过以下步骤将普通视频转换为iOS风格的Live Photo:

  1. 调整视频时长为指定长度
  2. 调整视频速度以匹配Live Photo标准时长
  3. 调整视频尺寸为指定尺寸
  4. 从视频中提取关键帧作为静态图像
  5. 生成Live Photo静态图像部分(.heic文件)
  6. 生成Live Photo视频部分(.mov文件)
  7. 将生成的Live Photo保存到相册(可选)

平台支持

目前仅支持iOS平台。

支持与赞赏

如果你觉得本插件解决了你的问题,可以考虑支持作者:

支付宝赞助 微信赞助

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。