攻城狮已经疯了
攻城狮已经疯了
  • 发布:2021-01-14 18:48
  • 更新:2023-02-23 14:11
  • 阅读:2026

【报Bug】video组件在即将播放end时会莫名seek到几秒前形成死循环,2倍速下出现率更是高到吓人

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 3.0.5

手机系统: Android

手机系统版本号: Android 10

手机厂商: 华为

手机机型: nova7

页面类型: nvue

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:
  1. 播放视频,等待到即将end
  2. 视频自动seek到前面
  3. (如上传视频的往返死循环效果)

预期结果:

正常播放流程,该结束就结束

实际结果:

末尾几秒死循环

bug描述:

video播放MP4,用2倍速播放,在即将end的时候,会自动seek到前几秒,就这样一直往返,播放就结束不了了。
上传的视频里面进度条没有动,是因为除了显示时间,我把其它的计算代码全部清除了(避免我的代码影响),现在的video进度回调就处理了如图2代码,不是100%出现(多看几个,总会中标的),但是我们做教育平台的,用户基数大,这个报过来的用户就多得很了。

2021-01-14 18:48 负责人:DCloud_Android_DQQ 分享
已邀请:
DCloud_Android_DQQ

DCloud_Android_DQQ

已与开发者沟通确认。
两个问题 :
1 播放到结尾,会自动seek到 结束最近的关键帧 问题已修复。 稍后版本会体现
2 播放到最结尾的时候会卡顿。 无法复现。

  • 攻城狮已经疯了 (作者)

    你好,seek没了,但是那个停顿还是有必要解决一下哟。不然到时候又是用户群体帮我们测bug,很影响uni和产品形象的。

    2021-01-21 15:25

  • DCloud_Android_DQQ

    回复 攻城狮已经疯了: 最好能提供一个我们这边可以复现的demo. 要不然我们是真的没办法修复。

    2021-01-21 15:56

  • 攻城狮已经疯了 (作者)

    回复 DCloud_Android_DQQ: 可能真机还是不一样,你也看到的卅,我发给你的视频,还是没播几次就出现的。

    2021-01-21 16:10

  • 攻城狮已经疯了 (作者)

    回复 DCloud_Android_DQQ: 你好,通过实验我们发现一个关于video标签的@ended问题。这个事件不是视频播完触发的,而是播放完成之前的瞬间触发的(这时候video还在播放状态),如果在@ended这个回调里面写大计算量的代码,故意拖慢它,那么video就会卡在那里,导致无法结束。

    2021-01-28 11:54

攻城狮已经疯了

攻城狮已经疯了 (作者) - vue/nvue,音视频,人脸验证

补充说明一下,这个问题在 HBuilder2.8.11 就出现了。

DCloud_UNI_Anne

DCloud_UNI_Anne

用示例代码hello uni-app能出现你的问题吗?
不能的话你需要排查出来具体你哪个页面,甚至哪一行导致的。
找出来具体原因后提供一个能复现你描述的bug的最小化demo,让我们及时定位问题,及时修复。

  • 攻城狮已经疯了 (作者)

    已经上传第三个压缩文件。

    其实这个只要开2倍速,要站在用户的使用角度,一看就是看半天一天的(不要只测试一次),真的很容易就出现了。


    用的 hello uni-app 项目测试,还多出来一个问题:“当前显示播放时间不更新”……

    2021-01-15 10:34

  • 攻城狮已经疯了 (作者)

    因为我就是差不多把代码都要删完了,就是用video加2倍速播放个视频,就出现很多次了,所以可以排除是自身代码的问题了。

    因为自身项目进度期限问题,如果贵公司在测试了,麻烦告知一下,谢谢了。

    2021-01-15 10:39

  • DCloud_UNI_Anne

    回复 攻城狮已经疯了: 华为荣耀 Android 10,测试了几次都未复现您说的问题,请提供可直接运行复现的简单示例代码(上传附件),否则无法复现就很难排查解决问题

    2021-01-15 11:55

  • 攻城狮已经疯了 (作者)

    回复 DCloud_UNI_Anne: 你好,用华为nova7测试,这个容易发生这个问题,开2倍速一直看,总会出现的。官方示例项目都出现了,我还要怎么提供……代码就是一个video标签,开2倍速一直循环看,其它啥都不写都会出现,这个还要提供??

    2021-01-15 12:18

  • 攻城狮已经疯了 (作者)

    回复 DCloud_UNI_Anne: 我发的附件里面,有一个是华为nova7的详细参数截图

    2021-01-15 12:23

  • 攻城狮已经疯了 (作者)

    你好,将问题规整了一下,已经上传demo和相关测试视频(都在demo那个压缩包里面),顺便再提一个远古级别的bug:倍速播放在IOS手机上只能支持1.0/2.0,中间的1.5是不行的。我们主要就是做视频教学的,所以会常用到video这个组件,根据市场反馈,用户挺需要这个倍速,希望官方能够优化一下这个功能,十分感谢。

    2021-01-18 18:28

  • DCloud_UNI_Anne

    回复 攻城狮已经疯了: 收到,已在排查问题,感谢您的反馈!

    2021-01-19 17:35

DCloud_Android_DQQ

DCloud_Android_DQQ

尝试修复了,因为这个问题很难描述。需要确认一下。

你是云打包吗 加我QQ 643833712。 我给你用内测环境打个包验证一下。

1***@qq.com

1***@qq.com

请问解决了吗,我的也是video组件会直接卡到最后播放不了了,直接就停止了

  • 攻城狮已经疯了 (作者)

    我解决了,有个方法你可以试试:把你写的video的@ended中的代码异步出来

    2021-04-02 17:31

  • 1***@qq.com

    回复 攻城狮已经疯了: 是怎么异步呢,他不是自然结束就会进入ended事件吗

    2021-04-02 18:20

  • 攻城狮已经疯了 (作者)

    回复 1***@qq.com: 原因是因为ended是一个同步方法,如果你ended里面的代码有不合规矩的,那么就无法end。解决方法举个例子:把你ended里面的代码写到setTimeout()里面。

    2021-04-06 11:48

  • 1***@qq.com

    回复 攻城狮已经疯了: 好的,感谢。请问您有没有遇到过视频中间播放过程中停止,然后就不动了的情况呢

    2021-04-09 16:42

  • 攻城狮已经疯了 (作者)

    回复 1***@qq.com: 同理,那个又是因为@timeupdate的问题,一样的解决思路,把里面的代码写到setTimeout()里面

    2021-04-16 15:56

1***@163.com

1***@163.com - 233

安卓机支持2.0倍速嘛 为什么我测试的时候ios 和 h5都行 我安卓机不行 我手机型号是一加7pro

2***@qq.com

2***@qq.com

您好,就是您描述的问题是需要怎么修复呀,求解

a***@qida.com

a***@qida.com - Emmmmm

可以用timeupdate计时器代替@ended

宽

我的也是最后一秒出现循环播放了,目前只发现安卓手机

要回复问题请先登录注册