下载地址:https://ext.dcloud.net.cn/plugin?id=26629
💎 插件介绍
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 | 视频时长(单位:秒) |
⚠️ 注意事项
- iOS: NSPhotoLibraryUsageDescription
- Android: android.permission.READ_EXTERNAL_STORAGE
🤝 联系与反馈
如果您在使用过程中有任何问题,欢迎在插件市场评价区留言。 兄弟们开发不易,给个好评呗!
网硕互联帮助中心
![uniapp [全端兼容] - 实现播放m3u8视频流+hls拉流推流完整方案,播放m3u8格式文件视频播放教程(流媒体播放、直播视频流、实时摄像头监控视频流对接、后端服务器切片分片传输视频流边下边播-网硕互联帮助中心](https://www.wsisp.com/helps/wp-content/uploads/2025/07/20250729163115-6888f75356cec-220x150.png)




评论前必须登录!
注册