更新记录

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 视频时长(单位:秒)

⚠️ 注意事项

  1. 权限要求:App 端需在 manifest.json 中配置相册访问权限:

    • iOS: NSPhotoLibraryUsageDescription
    • Android: android.permission.READ_EXTERNAL_STORAGE
  2. 运行环境:由于使用了 RenderJS,本插件仅支持 AppH5 环境,暂不支持微信小程序(小程序环境建议直接使用官方组件的 thumb 属性)。

  3. 版本兼容:最低兼容 Android 8.0 及 iOS 9.0。


🤝 联系与反馈

如果您在使用过程中有任何问题,欢迎在插件市场评价区留言。 兄弟们开发不易,给个好评呗!


隐私、权限声明

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

iOS: NSPhotoLibraryUsageDescription Android: android.permission.READ_EXTERNAL_STORAGE

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

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

暂无用户评论。