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回调的问题,这属于平台兼容性差异。建议从以下几个技术角度排查:
-
生命周期时序问题:鸿蒙Next环境可能存在视频播放周期与回调触发的时序差异。建议在
@loadedmetadata事件中显式调用videoContext.play(),确保播放器完全就绪。 -
事件监听兼容性:可同时监听
@timeupdate事件,通过计算currentTime与duration的差值(建议阈值≤0.5s)作为ended的补充判断逻辑:
const onTimeUpdate = (e) => {
if (Math.abs(e.detail.duration - e.detail.currentTime) < 0.5) {
// 执行ended逻辑
}
}

