收藏
回答

【bug】Video 组件切后台回来后无法正常播放

「复现流程」:

  • 创建一个 video 组件,设置自动播放,循环播放,不显示控制栏和播放按钮

  • 在页面 js 的 onload 生命周期中获取该 video 组件实例

  • 在 onShow 生命周期使用该 video 实例的 play 方法

  • 在 onHide 生命周期使用该 video 实例的 pause 方法


「期待结果」:

  • 在切后台时触发 onHide 生命周期的 pause,暂停视频

  • 在回到该页面时触发 onShow 生命周期的 play,继续播放视频


「实际结果」:

  • 切回页面之后并没有自动播放


「代码片段」:

https://developers.weixin.qq.com/s/D0eiQPmn7a4R

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

4 个回答

  • Eric Huang
    Eric Huang
    置顶回答2018-12-25

    客户端7.0版本已经支持了切后台自动暂停,回到小程序继续播放。可以不需要在 onHide / onShow 处理了。

    2018-12-25
    有用
    回复 2
    • 2018-12-25

      问题就是在 ios10 ios12 上自动暂停播放,并未生效,所以手动增加了 onHide/onShow 的处理,可是就目前情况而言仍未生效。

      2018-12-25
      回复
    • Eric Huang
      Eric Huang
      2018-12-25回复

      客户端版本是7.0吗?onShow之后调用 play 不能播放,这个问题我这边可以重现,需要再定位下问题。你可以试一下先加一点延时看看。 setTimeout(() => ctx.play(), 700)

      2018-12-25
      回复
  • 林小强
    林小强
    2020-04-02

    同问。求助官方。即使我在onshow里面去调用视频play方法,依旧不行。

    2020-04-02
    有用
    回复
  • 是小白啊
    是小白啊
    2018-12-21

    按钮点击可以触发吗?

    2018-12-21
    有用
    回复 4
    • 2018-12-25

      直接点击播放是可以的,是否是因为这个实例出问题了呢?

      2018-12-25
      回复
    • 是小白啊
      是小白啊
      2018-12-25回复

      隐藏这里试下

      2018-12-25
      回复
    • 2018-12-25回复是小白啊

      在调试器下直接死掉了,隐藏掉 this.videoCtx.pause() 并没有任何影响

      2018-12-25
      回复
    • 林小强
      林小强
      2020-04-02回复是小白啊
      请问这个有解决吗
      2020-04-02
      回复
  • 2018-12-21

    目前复现机型为 ios10 ios12 的 iphone 手机,暂且预计是因为在 onHide 时 video 组件被错误的销毁(释放)并在 onShow 中并未正确恢复。

    2018-12-21
    有用
    回复 1
    • 林小强
      林小强
      2020-04-02
      请问这个有解决方案吗
      2020-04-02
      回复
登录 后发表内容