video组件 是由点击cover-view层控制video播放的按钮。点击的时候没有直接自动播放?
发布于 6 年前 作者 xqiao 5935 次浏览 来自 官方Issues

点击cover-view的时候,bindplay执行,that.videoContext.play(),然后把isShow变成false,但是,视频并没有直接播放。而且视频显示出来画面了,还需要点击视频里控制播放的按钮才可以播放,请问大神,这个是什么原因啊?求教怎么解决,谢谢

3 回复

我粗略的试了下,在video里的cover-view绑定一个点击事件,然后创建video上下文VideoContext对象,然后调用.play()就可以了。

1.首先确定视频链接是否能正常播放;2.videoContext是否获取到了

wxml代码:

<video id="vvv" src="视频链接" bindplay="bbb">
  <cover-view bindtap="aaa" style="width:200rpx;height:200rpx;background:blue;">fraefreaw</cover-view>

js代码:

aaa() {
    let ar = wx.createVideoContext('vvv')
    ar.play()
  },
  bbb(e) {
    console.log(e)
  }

发下你的事件函数

思路:直接在video标签覆盖一层cover-view然后点击隐藏并播放

下面是我设置点击量的时候写的代码 可以参考一下

wwxml
<video id="polyvVideo" class='liveDetail-video' enable-play-gesture='true' controls='controls' src='{{videoSrc}}' bindtimeupdate="timeUpdate">
    <cover-view wx:if="{{onvideoclick}}" class="liveDetail-video-frame" bindtap="videoClick"></cover-view>
  </video>
js
//设置播放量
  videoClickfunction (e){
    var that = this;
    that.setData({
      onvideoclickfalse,
    },function(){
      that.videoContext.play();
      var data = {
        user_id: app.globalData.uid,
        v_id: that.data.v_id,
      }
      util.publiceFn(config.DOMAIN_API.liveVideoClick, data);
    })
  },

对了。还有一个事情就是,我点击cover-view的时候,开发工具上有时候会触发bindpause事件。有时候不触发。真机上是一直有触发,而且是触发2次bindpause,这个又是为什么呢,更不明白了,求大神指教指教,谢谢

回到顶部