更新记录
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生成需求。
文档链接
📚 插件详细文档请访问以下站点:
安装方法
- 在uni-app插件市场中搜索并导入
lime-live-photo
- 导入后可能需要重新编译项目
代码演示
基础用法
最简单的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:
- 调整视频时长为指定长度
- 调整视频速度以匹配Live Photo标准时长
- 调整视频尺寸为指定尺寸
- 从视频中提取关键帧作为静态图像
- 生成Live Photo静态图像部分(.heic文件)
- 生成Live Photo视频部分(.mov文件)
- 将生成的Live Photo保存到相册(可选)
平台支持
目前仅支持iOS平台。
支持与赞赏
如果你觉得本插件解决了你的问题,可以考虑支持作者:
支付宝赞助 | 微信赞助 |
---|---|
![]() |
![]() |