收藏
回答

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

「复现流程」:

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

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

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

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


「期待结果」:

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

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


「实际结果」:

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


「代码片段」:

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

最后一次编辑于  2018-12-21
回答关注问题邀请回答
收藏

3 个回答

  • 小程序技术专员-Eric
    小程序技术专员-Eric
    置顶回答2018-12-25

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

    2018-12-25
    赞同
    回复 2
    • 莫有
      莫有
      2018-12-25

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

      2018-12-25
      回复
    • 小程序技术专员-Eric
      小程序技术专员-Eric
      2018-12-25回复莫有

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

      2018-12-25
      回复
  • 社区技术运营专员-白柿子
    社区技术运营专员-白柿子
    2018-12-21

    按钮点击可以触发吗?

    2018-12-21
    赞同
    回复 3
    • 莫有
      莫有
      2018-12-25

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

      2018-12-25
      回复
    • 社区技术运营专员-白柿子
      社区技术运营专员-白柿子
      2018-12-25回复莫有

      隐藏这里试下

      2018-12-25
      回复
    • 莫有
      莫有
      2018-12-25回复社区技术运营专员-白柿子

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

      2018-12-25
      回复
  • 莫有
    莫有
    2018-12-21

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

    2018-12-21
    赞同
    回复