uni-app的video组件在uview的u-tabs-swiper里能播放但不能点暂停 使用j-video同样点暂停无效

uni-app的video组件在uview的u-tabs-swiper里能播放但不能点暂停 使用j-video同样点暂停无效

环境

环境 说明
h5 开发环境

在 `uview` 的 `u-tabs-swiper` 里使用 `uniapp` 的 `video` 组件时,可以播放但无法暂停。将 `video` 组件放在项目其他页面则可以正常暂停,怀疑是 `uview` 存在冲突。

同样地,使用 `j-video` 组件时也无法实现暂停功能。
1 回复

更多关于uni-app的video组件在uview的u-tabs-swiper里能播放但不能点暂停 使用j-video同样点暂停无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这个问题通常是由于u-tabs-swiper的滑动事件与video组件的触摸事件产生了冲突。u-tabs-swiper默认会拦截触摸事件以实现滑动切换,这会影响内部video组件的点击操作。

解决方案:

  1. 为video组件添加@touchstart.native.stop事件修饰符
<video 
  @touchstart.native.stop
  @click="toggleVideo"
></video>

.native.stop可以阻止事件冒泡到u-tabs-swiper,确保点击事件能被video组件正确捕获。

  1. 检查u-tabs-swiper配置: 确认是否设置了@change事件,如果有,确保事件处理逻辑不会干扰video操作。

  2. 使用动态控制方式: 通过ref直接控制video实例:

// 模板
<video ref="myVideo"></video>

// 方法
toggleVideo() {
  const videoContext = this.$refs.myVideo
  // 通过videoContext操作播放状态
}
回到顶部