uni-app video组件 用户把进度拖拽到最后 不触发@timeupdate 方法

uni-app video组件 用户把进度拖拽到最后 不触发@timeupdate 方法

测试过的手机

手机 系统
华为 ios12

操作步骤:

video组件 如视频时间为2分钟 用户拖拽到2分钟 就不触发[@timeupdate](/user/timeupdate) 方法了 直接就能到2分钟 希望video 组件到末尾也能触发 方法

预期结果:

video组件 如视频时间为2分钟 用户拖拽到2分钟 就不触发[@timeupdate](/user/timeupdate) 方法了 直接就能到2分钟 希望video 组件到末尾也能触发 方法

实际结果:

video 组件到末尾 不触发[@timeupdate](/user/timeupdate) 方法了

bug描述:

video组件 如视频时间为2分钟 用户拖拽到2分钟 就不触发[@timeupdate](/user/timeupdate) 方法了 直接就能到2分钟 希望video 组件到末尾也能触发 方法


更多关于uni-app video组件 用户把进度拖拽到最后 不触发@timeupdate 方法的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

用示例代码hello uni-app能出现你的问题吗?

更多关于uni-app video组件 用户把进度拖拽到最后 不触发@timeupdate 方法的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个已知的uni-app video组件行为问题。当用户快速拖拽进度条到视频末尾时,确实可能不会触发@timeupdate事件。

解决方法可以考虑以下两种方案:

  1. 使用ended事件作为补充监听:
<video 
  [@timeupdate](/user/timeupdate)="onTimeUpdate"
  @ended="onVideoEnded"
></video>
  1. 在timeupdate事件中主动检查是否到达视频末尾:
onTimeUpdate(e) {
  const currentTime = e.detail.currentTime;
  const duration = e.detail.duration;
  
  if(currentTime >= duration - 0.1) { // 接近末尾时处理
    this.handleVideoEnd();
  }
}
回到顶部