更新记录
1.0.0(2026-05-23)
截取视频图片功能的添加
平台兼容性
uni-app(3.7.7)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
| √ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| - |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
uni-app x(3.7.7)
| Chrome |
Safari |
Android |
iOS |
鸿蒙 |
微信小程序 |
| √ |
√ |
√ |
√ |
√ |
- |
zl-videotool
视频缩略图工具(UTS 插件),提供基础的视频截图功能
平台支持
| 平台 |
支持情况 |
| iOS |
✅ |
| Android |
✅ |
| Harmony |
✅ |
| Web |
✅(返回 base64 数据) |
1. 引入模块
import { getVideoThumbnail } from "@/uni_modules/zl-videotool"
2. 获取本地视频缩略图
uni-app x 中不再支持 plus.io,本地视频需先通过 uni.getFileSystemManager().copyFile() 将 static 目录下的文件复制到用户目录,再传入插件调用。
// #ifdef APP
const fs = uni.getFileSystemManager()
const videoDestPath = `${uni.env.USER_DATA_PATH}/test.mp4`
// 先将 static 下的视频复制到用户目录(插件需要可访问的文件路径)
fs.copyFile({
srcPath: "/static/test.mp4",
destPath: videoDestPath,
success() {
getVideoThumbnail({
videoPath: videoDestPath,
saveImagePath: `${uni.env.USER_DATA_PATH}/TXVideoTool/`,
saveImageName: "testLocal.png",
second: 0,
success(res) {
console.log("缩略图路径:", res.imagePath)
},
fail(err) {
console.log("错误:", err.errMsg)
}
})
},
fail() {
// 文件可能已存在,直接使用
getVideoThumbnail({
videoPath: videoDestPath,
saveImagePath: `${uni.env.USER_DATA_PATH}/TXVideoTool/`,
saveImageName: "testLocal.png",
second: 0,
success(res) {
console.log("缩略图路径:", res.imagePath)
},
fail(err) {
console.log("错误:", err.errMsg)
}
})
}
})
// #endif
3. 获取网络视频缩略图
getVideoThumbnail({
videoPath: "https://example.com/video.mp4",
saveImagePath: `${uni.env.USER_DATA_PATH}/TXVideoTool/`,
saveImageName: "testNetwork.png",
second: 6,
success(res) {
console.log("缩略图路径:", res.imagePath)
},
fail(err) {
console.log("错误:", err.errMsg)
}
})
4. Web 平台使用
// #ifdef WEB
getVideoThumbnail({
videoPath: "/static/test.mp4",
saveImagePath: "",
saveImageName: "testLocal.png",
second: 0,
success(res) {
// Web 端返回的是 base64 data URL,可直接用于 image src
console.log("缩略图:", res.imagePath)
},
fail(err) {
console.log("错误:", err.errMsg)
}
})
// #endif
参数说明
| 参数 |
类型 |
必填 |
说明 |
| videoPath |
string |
是 |
视频路径,支持本地路径和网络路径(http/https)。App 端本地路径请使用 uni.env.USER_DATA_PATH 下的路径 |
| saveImagePath |
string |
是 |
缩略图保存目录路径。App 端请使用 uni.env.USER_DATA_PATH 下的路径 |
| saveImageName |
string |
是 |
缩略图文件名(支持 .png / .jpg) |
| second |
number |
否 |
截取第几秒,默认 0 |
| success |
function |
否 |
成功回调 |
| fail |
function |
否 |
失败回调 |
| complete |
function |
否 |
完成回调(无论成功失败都会执行) |
成功回调参数
| 参数 |
类型 |
说明 |
| imagePath |
string |
缩略图文件完整路径 |
| code |
number |
状态码,0 表示成功 |
| errMsg |
string |
错误信息 |
失败回调参数
| 参数 |
类型 |
说明 |
| errCode |
number |
错误码 |
| errMsg |
string |
错误信息 |
错误码
| 错误码 |
说明 |
| 9010001 |
创建目录失败 |
| 9010002 |
视频路径为空 |
| 9010003 |
视频处理错误 |
路径说明(uni-app x)
uni-app x 中不再支持 plus.io,请使用以下方式获取路径:
| 路径 |
获取方式 |
说明 |
| 用户数据目录 |
uni.env.USER_DATA_PATH |
可读写,推荐用于保存缩略图 |
| 缓存目录 |
uni.env.CACHE_PATH |
系统可自动清理 |
| 沙盒目录 |
uni.env.SANDBOX_PATH |
应用沙盒根目录 |
| static 资源 |
/static/xxx |
只读,需先复制到用户目录才能被插件访问 |
注意:/static/ 下的文件为只读资源,插件内部需使用原生绝对路径。页面调用时传入 uni.env.USER_DATA_PATH 下的路径,插件会自动通过 UTSAndroid.convert2AbsFullPath() / UTSiOS.convert2AbsFullPath() 转换为平台原生绝对路径。
Web 平台说明
Web 平台由于浏览器安全限制无法写入本地文件,saveImagePath 和 saveImageName 参数无效,成功回调中 imagePath 返回的是 base64 数据 URL(如 data:image/png;base64,...),可直接用于 <image> 组件的 src 属性。