更新记录

1.0.0(2026-10-20)

上线


平台兼容性

uni-app(4.56)

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

wt-swipervideo(图片 + 视频混合轮播组件)

支持 uni-app 图片 / 视频混合轮播、自动播放、加载占位、自动高度适配的通用轮播组件。
视频播放器基于 renderjs 实现,适用于 H5 / App(vue);小程序端图片轮播可用,但 renderjs 视频播放器暂不支持。


✨ 功能特性

  • ✅ 图片与视频混合轮播(自动识别 is_video / type / video_url)
  • ✅ 视频自动播放(默认静音,绕过 iOS 自动播放限制)、可循环
  • ✅ 内置自定义播放器:进度条、控制栏、静音切换、中央播放按钮、时间显示
  • ✅ 播放结束自动暂停(默认行为)
  • ✅ 轮播高度随内容自动适配(图片加载完成后重新测量)
  • ✅ 角标页码指示(当前页 / 总页数)
  • ✅ 图片点击预览(uni.previewImage)
  • ✅ 视频加载占位图(可配置 loadingImg)
  • ✅ 全局视频播放控制(通过 uni.$emit('VideoCmd', ...))
  • ✅ 适用于商品详情、短视频、广告轮播、内容展示

📦 目录结构

wt-swipervideo/
├── wt-swipervideo.vue   # 主组件(easycom 入口,文件名 = 目录名)
├── uni-rich-video.vue   # 视频播放器(renderjs,作为内部依赖随附)
├── package.json         # uni_modules 发布清单
├── readme.md
└── changelog.md

📥 安装方式

方式一:插件市场导入(推荐)

  1. 打开 DCloud 插件市场
  2. 搜索 wt-swipervideo
  3. 点击「使用 HBuilderX 导入插件」
  4. 选择你的 uni-app 项目

方式二:手动安装

将 wt-swipervideo 文件夹复制到项目的 uni_modules/ 或 components/ 目录下即可。

组件已符合 easycom 组件规范(components/组件名称/组件名称.vue),放入上述目录后无需 import、无需注册,直接在页面 <template> 中使用 <wt-swipervideo> 即可。


🚀 基础用法

<template>
  <view>
    <wt-swipervideo :banre-data="wheel" />
  </view>
</template>

<script>
export default {
  data() {
    return {
      wheel: [
        { img_url: 'https://example.com/video.mp4', is_video: true },  //视频is_video必须true,
        { img_url: 'https://example.com/image1.jpg', is_video: false },
        { img_url: 'https://example.com/image2.jpg' , is_video: false}
      ]
    }
  }
}
</script>

视频项:用 img_url 填写视频地址,并加 is_video: true 标记。
图片项:用 img_url 填写图片地址即可 is_video: false 标记。


📌 Props

属性 类型 默认值 说明
banreData Array [] 轮播数据,支持图片 / 视频混合
loadingImg String '' 视频加载时的占位图(网络地址或绝对路径),不传则不显示

banreData 子项字段说明

字段 类型 说明
img_url String 图片或视频地址(必填,视频也使用此字段)
is_video Boolean 是否为视频(true 标记为视频)
type String 值为 "video" 时也会识别为视频
video_url String 存在即视为视频项(仅作标记,地址仍取 img_url)

✅ 视频类型识别优先级:is_video > type > video_url(仅用于判断该项是不是视频)。


🎮 全局视频控制

组件通过 uni.$emit 发送指令,控制当前可见视频的播放 / 暂停:

// 播放当前视频
uni.$emit('VideoCmd', { action: 'play' })

// 暂停当前视频
uni.$emit('VideoCmd', { action: 'pause' })

说明:内置视频播放器(uni-rich-video.vue)本身还提供 play / pause / seek / seekAndPlay / replay 等方法,可用于更精细的逐视频控制;如需在页面中直接调用,可基于 VideoCmd 机制扩展,或给主组件增加对应透传方法。


⚠️ 注意事项

  • 组件已符合 easycom 规范,放在 components/ 或 uni_modules/ 下即可直接使用,无需 import / 注册。
  • 视频播放器基于 renderjs,仅支持 H5 / App(vue);小程序端视频可能无法播放。
  • 视频地址统一使用 img_url 字段;如需自定义内置播放器(循环、控制栏、主题色等),可扩展 uni-rich-video.vue 或为其增加透传 prop。
  • 切换轮播页时,组件内部通过 uni.$emit('VideoCmd', ...) 自动暂停非当前视频、播放当前视频,一般无需手动干预。

隐私、权限声明

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

无

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

无

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

无

暂无用户评论。