uni-app video组件 鸿蒙next微信小程序偶发不触发@ended回调

uni-app video组件 鸿蒙next微信小程序偶发不触发@ended回调

操作步骤:

  • 页面放个video标签,loop设置一直循环

预期结果:

  • video组件应该跟安卓、苹果一样 可以正常触发@ended

实际结果:

  • 微信小程序偶发不触发@ended回调

bug描述:

  • 使用video组件,鸿蒙next微信小程序偶发不触发@ended回调
信息类别 信息内容
产品分类 uniapp/App
PC开发环境 Windows
PC开发环境版本 Windows11
HBuilderX类型 正式
HBuilderX版本 4.76
手机系统 HarmonyOS NEXT
手机系统版本 HarmonyOS 5.0.5
手机厂商 华为
手机机型 Mate60 Pro
页面类型 vue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

更多关于uni-app video组件 鸿蒙next微信小程序偶发不触发@ended回调的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

你好,可以先尝试写一个微信小程序项目看看鸿蒙上是不是也不能触发

更多关于uni-app video组件 鸿蒙next微信小程序偶发不触发@ended回调的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


你是哪个端有问题?是鸿蒙app还是微信小程序?

针对鸿蒙Next微信小程序偶发不触发video组件@ended回调的问题,这属于平台兼容性差异。建议从以下几个技术角度排查:

  1. 生命周期时序问题:鸿蒙Next环境可能存在视频播放周期与回调触发的时序差异。建议在@loadedmetadata事件中显式调用videoContext.play(),确保播放器完全就绪。

  2. 事件监听兼容性:可同时监听@timeupdate事件,通过计算currentTimeduration的差值(建议阈值≤0.5s)作为ended的补充判断逻辑:

const onTimeUpdate = (e) => {
  if (Math.abs(e.detail.duration - e.detail.currentTime) < 0.5) {
    // 执行ended逻辑
  }
}
回到顶部