更新记录
1.0.0(2026-01-20)
高兼容性:支持 App (Android/iOS) 及 H5 平台,解决官方 API 封面丢失问题。
高性能:基于 RenderJS 渲染,不占用主逻辑线程,操作流畅不掉帧。
一键转存:自动将 Base64 封面图转换为 _doc 临时文件路径,支持 uni.uploadFile 直接上传。
精美 UI:采用专业蓝色系科技感设计,内置骨架屏加载状态。
暗黑模式:完美适配系统暗黑主题,视效统一。
纯净代码:基于 Vue3 Options API,无任何第三方插件依赖,轻量化部署
平台兼容性
uni-app(3.7.0)
| Vue2 | Vue2插件版本 | Vue3 | Vue2插件版本 | Chrome | Chrome插件版本 | Safari | Safari插件版本 | app-vue | app-vue插件版本 | app-nvue | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | 1.0.0 | √ | 1.0.0 | √ | 1.0.0 | √ | 1.0.0 | √ | 1.0.0 | - | 8.0 | 1.0.0 | 12 | 1.0.0 | - |
| 微信小程序 | 微信小程序插件版本 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | 1.0.0 | - | - | - | - | - | - | - | - | - | - |
其他
| 多语言 | 暗黑模式 | 宽屏模式 |
|---|---|---|
| × | √ | √ |
muzi-video-cover 视频封面高清提取插件
💎 插件介绍
muzi-video-cover 是一款专为 UniApp 开发的高性能视频封面提取组件。它完美解决了原生 uni.chooseVideo 在部分 Android 机型及 H5 环境下 thumbTempFilePath 返回为空的顽疾。
本插件采用 RenderJS 异步截帧技术 + 原生 Bitmap 转换方案,确保在 Android 8.0+ 和 iOS 12.0+ 上都能稳定、高清地获取视频第一帧,并自动转换为可直接上传的本地临时路径。
🌟 核心特性
- 高兼容性:支持 App (Android/iOS) 及 H5 平台,解决官方 API 封面丢失问题。
- 高性能:基于 RenderJS 渲染,不占用主逻辑线程,操作流畅不掉帧。
- 一键转存:自动将 Base64 封面图转换为
_doc临时文件路径,支持uni.uploadFile直接上传。 - 精美 UI:采用专业蓝色系科技感设计,内置骨架屏加载状态。
- 暗黑模式:完美适配系统暗黑主题,视效统一。
- 纯净代码:基于 Vue3 Options API,无任何第三方插件依赖,轻量化部署。
🛠️ 使用指南
1. 引入插件
本插件符合 uni_modules 规范,下载后直接放入项目根目录的 uni_modules 文件夹即可,无需手动 import。
2. 基本用法
<template>
<view>
<muzi-video-cover @confirm="onVideoReady" />
</view>
</template>
<script>
export default {
methods: {
onVideoReady(res) {
console.log('视频元数据:', res);
// res 包含以下字段:
// cover: "data:image/jpeg;base64,..." (用于预览)
// tempFilePath: "_doc/uniapp_temp/..." (用于上传)
// width: 视频宽度
// height: 视频高度
// size: 视频大小(Byte)
// duration: 视频时长(s)
// 示例:执行上传
uni.uploadFile({
url: '你的上传接口',
filePath: res.tempFilePath,
name: 'file',
success: (uploadRes) => {
uni.showToast({ title: '封面上传成功' });
}
});
}
}
}
</script>
📋 API 说明
事件 (Events)
| 事件名 | 说明 | 返回参数 |
|---|---|---|
| @change | 当用户选择视频并完成截帧时触发 | 视频详细信息对象 |
| @confirm | 当用户点击“确认并上传”按钮时触发 | 视频详细信息对象 |
返回参数详情 (Result Object)
| 参数 | 类型 | 说明 |
|---|---|---|
| cover | String | 封面的 Base64 字符串(可直接用于 <image> 标签预览) |
| tempFilePath | String | 转换后的本地临时路径(上传必用) |
| size | Number | 视频文件大小(单位:B) |
| width | Number | 视频原始宽度 |
| height | Number | 视频原始高度 |
| duration | Number | 视频时长(单位:秒) |
⚠️ 注意事项
-
权限要求:App 端需在
manifest.json中配置相册访问权限:- iOS:
NSPhotoLibraryUsageDescription - Android:
android.permission.READ_EXTERNAL_STORAGE
- iOS:
-
运行环境:由于使用了 RenderJS,本插件仅支持 App 和 H5 环境,暂不支持微信小程序(小程序环境建议直接使用官方组件的
thumb属性)。 -
版本兼容:最低兼容 Android 8.0 及 iOS 9.0。
🤝 联系与反馈
如果您在使用过程中有任何问题,欢迎在插件市场评价区留言。 兄弟们开发不易,给个好评呗!

收藏人数:
购买源码授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(0)
下载 8
赞赏 1
下载 13505800
赞赏 1848
赞赏
京公网安备:11010802035340号