uni-app 小程序2.6.1以下onTimeUpdate是OK的,但是在2.6.1以上onTimeUpdate无法触发回调

uni-app 小程序2.6.1以下onTimeUpdate是OK的,但是在2.6.1以上onTimeUpdate无法触发回调

1 回复

更多关于uni-app 小程序2.6.1以下onTimeUpdate是OK的,但是在2.6.1以上onTimeUpdate无法触发回调的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在 uni-app 小程序开发中,从基础库 2.6.1 版本开始,onTimeUpdate 事件的行为确实发生了变化。这主要是由于微信小程序官方对底层音频/视频组件的优化和调整所导致的。

主要原因:

  1. 性能优化:基础库 2.6.1 以上版本为了减少频繁回调带来的性能开销,可能调整了 onTimeUpdate 的触发频率或条件。
  2. 事件触发机制变化:新版可能对事件监听机制做了修改,导致在某些情况下回调无法被正确触发。

解决方案:

  1. 使用 [@timeupdate](/user/timeupdate) 绑定事件:在 videoaudio 组件上直接使用 [@timeupdate](/user/timeupdate) 绑定事件,而不是在 methods 中定义 onTimeUpdate 方法。
<video [@timeupdate](/user/timeupdate)="handleTimeUpdate"></video>
  1. 检查基础库版本:在 manifest.json 中设置最低基础库版本为 2.6.1 以上,并确保真机调试的基础库版本一致。
  2. 使用 setInterval 替代:如果上述方法无效,可以考虑使用 setInterval 定时获取当前播放时间,但需注意性能影响。
  3. 更新 uni-app 版本:确保使用的 uni-app 编译器版本与基础库兼容,建议升级到最新稳定版。

代码示例:

export default {
  methods: {
    handleTimeUpdate(event) {
      console.log('当前时间:', event.detail.currentTime)
    }
  }
}
回到顶部