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 事件的行为确实发生了变化。这主要是由于微信小程序官方对底层音频/视频组件的优化和调整所导致的。
主要原因:
- 性能优化:基础库 2.6.1 以上版本为了减少频繁回调带来的性能开销,可能调整了
onTimeUpdate的触发频率或条件。 - 事件触发机制变化:新版可能对事件监听机制做了修改,导致在某些情况下回调无法被正确触发。
解决方案:
- 使用
[@timeupdate](/user/timeupdate)绑定事件:在video或audio组件上直接使用[@timeupdate](/user/timeupdate)绑定事件,而不是在methods中定义onTimeUpdate方法。
<video [@timeupdate](/user/timeupdate)="handleTimeUpdate"></video>
- 检查基础库版本:在
manifest.json中设置最低基础库版本为 2.6.1 以上,并确保真机调试的基础库版本一致。 - 使用
setInterval替代:如果上述方法无效,可以考虑使用setInterval定时获取当前播放时间,但需注意性能影响。 - 更新 uni-app 版本:确保使用的 uni-app 编译器版本与基础库兼容,建议升级到最新稳定版。
代码示例:
export default {
methods: {
handleTimeUpdate(event) {
console.log('当前时间:', event.detail.currentTime)
}
}
}

