云计算百科
云计算领域专业知识百科平台

UniApp视频封面高清提取神器

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

⚠️ 注意事项

  • 权限要求:App 端需在 manifest.json 中配置相册访问权限:
    • iOS: NSPhotoLibraryUsageDescription
    • Android: android.permission.READ_EXTERNAL_STORAGE
  • 运行环境:由于使用了 RenderJS,本插件仅支持 App 和 H5 环境,暂不支持微信小程序(小程序环境建议直接使用官方组件的 thumb 属性)。
  • 版本兼容:最低兼容 Android 8.0 及 iOS 9.0。

  • 🤝 联系与反馈

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


    赞(0)
    未经允许不得转载:网硕互联帮助中心 » UniApp视频封面高清提取神器
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!