更新记录

1.0.1(2026-07-21)

优化

1.0.0(2026-07-21)

首次发布


平台兼容性

uni-app(5.0)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - - -

uni-app x(5.0)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - - -

ax-video-cover

ax-video-cover 是一个基于 UTS 开发的跨平台(iOS/Android)原生视频封面提取插件。 该插件提供极速的视频帧提取能力,无需加载播放器即可直接提取任意本地视频或网络视频的指定时间帧,并以极高的性能直接写入本地相册缓存。

平台兼容性

iOS Android

提示: 这是一个 UTS 原生插件,必须打包自定义基座后才能生效。

引入插件

在需要使用的 vue 页面或组件中导入插件 API:

import { getVideoCover } from '@/uni_modules/ax-video-cover'

API 列表

getVideoCover(options)

获取视频的指定时间帧,保存为本地的 JPEG 图片。

options 参数说明

参数名 类型 必填 默认值 说明
src String - 视频文件的绝对路径或网络URL。
注意:如果是 uni.chooseVideo 返回的临时路径,必须使用 plus.io.convertLocalFileSystemURL(path) 进行转换,否则底层可能无法识别。
time Number 0 需要提取封面的时间点,单位为毫秒(ms)。例如提取第1秒的帧请传入 1000
quality Number 100 生成封面的压缩质量,取值范围 0-100
100 表示最高画质(不压缩)。
success Function - 提取成功的回调函数
fail Function - 提取失败的回调函数

success 返回参数说明

参数名 类型 说明
tempFilePath String 生成的封面图片在本地硬盘的绝对路径(格式为 .jpg

fail 返回参数说明

参数名 类型 说明
errCode Number 错误码
errMsg String 错误描述信息

完整代码示例

下面演示了如何从相册选取视频,并立刻提取它的第0秒和第2秒画面的完整使用场景:

<template>
  <view class="content">
    <button type="primary" @click="pickVideo">选择视频获取封面</button>
    <image v-if="coverPath" :src="coverPath" mode="aspectFit" style="width: 100%; height: 300px; margin-top: 20px;"></image>
  </view>
</template>

<script>
import { getVideoCover } from '@/uni_modules/ax-video-cover'

export default {
  data() {
    return {
      coverPath: ''
    }
  },
  methods: {
    pickVideo() {
      // 1. 从相册选择视频
      uni.chooseVideo({
        sourceType: ['album'],
        compressed: false,
        success: (res) => {
          // 2. 调用插件提取封面
          getVideoCover({
            // 必须转换相对路径为绝对路径
            src: plus.io.convertLocalFileSystemURL(res.tempFilePath),
            time: 0, // 提取第 0 秒
            quality: 100, // 压缩质量
            success: (result) => {
              console.log('提取成功,图片保存路径:', result.tempFilePath);
              this.coverPath = result.tempFilePath;
            },
            fail: (err) => {
              console.error('封面提取失败', err);
              uni.showToast({
                title: '提取失败',
                icon: 'none'
              })
            }
          })
        }
      })
    }
  }
}
</script>

隐私、权限声明

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

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

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

暂无用户评论。