更新记录

v1.0.0(2025-12-29) 下载此版本

  • 首次发布
  • 支持网络视频(HTTP/HTTPS)封面提取
  • 支持本地视频封面提取
  • 支持 content:// URI
  • 支持指定时间点提取
  • 支持自定义 JPEG 质量
  • 提供 Promise API

平台兼容性

lab-uts-video-cover

高性能视频封面提取插件,支持网络视频和本地视频,智能路径,秒开不卡顿

特性

  • 网络视频支持 - 直接传入 HTTP/HTTPS 链接,无需下载
  • 本地视频支持 - 支持文件路径和 content:// URI
  • 指定时间点 - 精确提取任意秒数的画面
  • 智能路径 - 无需手动指定保存路径,自动管理临时文件
  • 秒开不卡顿 - 使用 OPTION_CLOSEST_SYNC 优化,快速定位关键帧
  • 纯 UTS 实现 - 无原生依赖,标准基座可直接运行

平台支持

Android iOS
✅ 5.0+ ✅ 12.0+

安装

在 uni_modules 目录下导入本插件即可。

使用方法

引入插件

import { getCover } from '@/uni_modules/lab-uts-video-cover/js'

本地视频封面

// 选择视频
uni.chooseMedia({
    count: 1,
    mediaType: ['video'],
    sourceType: ['album'],
    success: async (res) => {
        const videoPath = res.tempFiles[0].tempFilePath
        const coverPath = await getCover(videoPath)
        console.log('封面路径:', coverPath)
    }
})

网络视频封面

// 直接传入网络视频 URL
const path = await getCover('https://example.com/video.mp4')
console.log('封面路径:', path)

指定时间点和质量

const path = await getCover('/path/to/video.mp4', {
    time: 5,      // 提取第 5 秒的画面
    quality: 90   // JPEG 质量 90%
})
console.log('封面路径:', path)

错误处理

try {
    const path = await getCover('https://example.com/video.mp4', { time: 5 })
    console.log('封面路径:', path)
} catch (error) {
    console.error('提取失败:', error.message)
}

API

getCover(src, options?): Promise\<string>

提取视频封面图片。

参数:

参数 类型 必填 说明
src string 视频路径,支持网络地址(http/https)、本地路径、content:// URI
options object 配置选项

options:

属性 类型 默认值 说明
time number 0 提取时间点(秒)
savePath string 自动生成 保存路径,不传则自动生成临时路径
quality number 80 JPEG 质量 1-100

返回值:

  • Promise<string> - 封面图片路径

注意事项

  1. 网络视频:首次加载可能需要一定时间,建议显示 loading 提示
  2. 缓存管理:封面图片保存在应用缓存目录,系统会自动清理
  3. iOS 权限:访问网络视频需要在 manifest 中配置网络权限
  4. 仅支持真机:本插件依赖原生 API,不支持模拟器

更新日志

1.0.0

  • 首次发布
  • 支持网络视频和本地视频封面提取
  • 支持指定时间点和质量参数

隐私、权限声明

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

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

- 不发送任何数据到服务器 - 不包含任何网络请求 - 所有处理均在本地完成 - 生成的封面图片仅保存在应用缓存目录

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

许可协议

MIT协议

暂无用户评论。