收藏
回答

小程序video组件,通过setData修改src属性并重新播放时,会短暂出现黑屏闪烁再播放新视频?

小程序组件:Video

通过video标签连播连续的几个视频时,在前一个视频播放完毕时,通过end事件函数通过page.setData重设video的src,然后在用videoContext.play(),可以实现并连续播放,但在后一个视频开始播放之前,总会黑屏闪一下才能播放。检索了很多资料,据说是在第2个视频播放前会resetMedia(重置播放器),所以会闪一个短暂黑屏。

尝试过的方法(失败):通过组件的cover-view(现已支持同层渲染view)尝试遮住短暂黑屏,在setData(src,"xx")之前显示cover-view,等第2个视频开始播放后play事件时在影藏cover-view,但结果无效,依旧存在黑屏闪烁,原因是播放器被重置,cover-view作为video内部元素也被重置了,无法独立显示。

尤其是全屏播放器时更为明显,因为video被重置,所以会短暂退出全屏然后再全屏播放,体验非常差。

寻求官方帮助,能否解决闪屏问题,或者能否有API或者参数能够由开发者决定是否重置video。

假如没有API或者参数,是否能在以后增加参数或设置,由开发者决定是否重置video?

回答关注问题邀请回答
收藏

2 个回答

  • 游戏人生
    游戏人生
    2021-02-26

    正常。

    你可以加载2个video,一个现实,一个隐藏,这样切换就会流畅了

    我们是这样做的,就算有3,4,5,6... 也是按照顺序交替

    2021-02-26
    有用 1
    回复 8
    • 律师老杨
      律师老杨
      2021-02-27
      感谢回复,我也是这样做的。轮流预加载,确实是好想法。但是我们应用场景有一个特殊要求,就是在全屏下观看视频,在视频的cover-view上还需要进行互动,如果不是全屏的话,基本上不会有任何闪屏问题。但全屏的话,重置video时会重新全屏一次,等于cover-view上的内容会受影响。
      2021-02-27
      回复
    • 律师老杨
      律师老杨
      2021-02-27
      因为只能有一个video占用全屏,切换另一个video的时候,另一个video还没有全屏,不知道是否有什么办法做到?
      2021-02-27
      回复
    • 游戏人生
      游戏人生
      2021-02-27回复律师老杨
      试下 translate 先移出去?
      2021-02-27
      回复
    • 庞帅
      庞帅
      2021-03-08
      请问有具体代码吗,我也是使用的两个video,通过wx:if互切,但是还是会切换的时候闪黑屏
      2021-03-08
      回复
    • 庞帅
      庞帅
      2021-03-12
      使用hidden互切的时候可以了,但是切换到第二个视频的时候没有办法自动播放了
      2021-03-12
      回复
    查看更多(3)
  • Jackey
    Jackey
    2023-04-01

    为啥我使用两个视频,hidden互相切换,也会有黑屏闪烁啊

    2023-04-01
    有用
    回复
登录 后发表内容
问题标签