7***@qq.com
7***@qq.com
  • 发布:2025-06-27 10:01
  • 更新:2025-06-27 15:41
  • 阅读:53

video组件timeupdate事件在华为鸿蒙系统中的bug

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 24H2

HBuilderX类型: 正式

HBuilderX版本号: 4.57

手机系统: Android

手机系统版本号: Android 16

手机厂商: 华为

手机机型: 荣耀PLAY 4T Pro

页面类型: nvue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
<template>  
<video class="video-view" id="myVideo" :loop="false" autoplay :controls="false"  
                    :src="videoInfo.video.content" :poster="videoInfo.video.imgurl" :show-play-btn="false"  
                    :show-center-play-btn="false" :enable-progress-gesture="false" @fullscreenchange="fullscreenchange"  
                    @controlstoggle="controlstoggle" @timeupdate="timeupdate"></video>  
</template>  

methods:{  
timeupdate(e) {  
  // 模拟视频播放完毕  
                if (e.detail.currentTime >= this.videoInfo.video.duration - 1) {  
                    this.simulationEnded(); // 模拟视频结束后触发的事件  
                    return false;  
                }  
}  
}

操作步骤:
<template>  
<video class="video-view" id="myVideo" :loop="false" autoplay :controls="false"  
                    :src="videoInfo.video.content" :poster="videoInfo.video.imgurl" :show-play-btn="false"  
                    :show-center-play-btn="false" :enable-progress-gesture="false" @fullscreenchange="fullscreenchange"  
                    @controlstoggle="controlstoggle" @timeupdate="timeupdate"></video>  
</template>  

methods:{  
timeupdate(e) {  
  // 模拟视频播放完毕  
                if (e.detail.currentTime >= this.videoInfo.video.duration - 1) {  
                    this.simulationEnded(); // 模拟视频结束后触发的事件  
                    return false;  
                }  
}  
}

预期结果:

预期应该在视频66分32秒时,执行视频结束的方法,在视频结束的方法中,有停止视频的操作,视频进度应该停止在66分32秒

实际结果:

实际结果并未在66分32秒时,执行视频结束的方法,并且视频的进度会继续播放到66分33秒,并且视频界面出现loading状态。

bug描述:

uniapp开发app使用安心打包,nvue页面开发video时,@ended事件偶尔不触发,所以使用@timeupdate事件,模拟视频结束事件。本应在视频时长-1秒时,模拟视频结束,但是在鸿蒙3.0系统上,有些特定长度的视频,在视频长度-1秒的时候,并不会触发@timeupdate事件,并且变化到视频时长位置也不触发,导致无法模拟获取到视频结束的事件,无法执行下一步操作。暂时发现的视频时长为66:33(66分钟33秒)

2025-06-27 10:01 负责人:无 分享
已邀请:
DCloud_UNI_yuhe

DCloud_UNI_yuhe

测试过其它机型是正常的吗?只有在这个设备上才存在问题?

  • 7***@qq.com (作者)

    同一个视频,在其他设备上正常,甚至在鸿蒙4.2系统上都正常

    2025-06-27 15:46

  • 7***@qq.com (作者)

    奇怪的是,在这台鸿蒙3.0系统的华为设备上,也不是所有的视频都会出现这个情况,这是在使用的过程中发现了有这么一个视频出现了这种情况。

    2025-06-27 15:48

  • DCloud_UNI_yuhe

    回复 7***@qq.com: 你可以先拿视频工具 FFmpeg 看一下这个视频有什么问题

    2025-06-27 16:00

  • 7***@qq.com (作者)

    回复 DCloud_UNI_yuhe: 如果是视频问题,那其他设备也会不正常,但是在其他设备上使用是正常的

    2025-06-27 17:47

要回复问题请先登录注册