收藏
回答

为什么在swiper中绑定touchVideoStart事件获取videoContext暂停无效?

<swiper indicator-dots="{{indicatorDots}}" interval="{{interval}}" duration="{{duration}}" vertical="true" style="height:{{windowHeight}}px;width:{{windowWidth}}px" bindchange="changeVideo" bindtap="">
   <block wx:for="{{videoList}}" wx:key="videoList">
     <swiper-item>
       <video id="myVideo{{index}}" class="vid" src="{{item}}" controls="false"  bindtouchstart="touchVideoStart" bindtouchend="touchVideoEnd" autoplay="{{index == current}}"></video>
     </swiper-item>
   </block>
 </swiper>


/**
   * 开始滑动
   */
  touchVideoStart: function(e) {
    console.log('touchVideoStart', e);
    let video = e.currentTarget.id;
    console.log('video', video);
    debugger
    this.videoContext = wx.createVideoContext(video);//videoContext报错 undefind
    console.log('videoContext', videoContext);
    this.videoContext.pause();
  },

需求是做成像抖音或者快手一样是视频滑动的时候控制上一个视频停止和下一个视频播放

目前运行此代码报错信息为:

videoContext is not defined; [Component] Event Handler Error @ index/index#bound touchVideoStart

ReferenceError: videoContext is not defined

导致报错的原因是什么?还有就是有更好的解决需求方案么?最好是不花钱,谢谢。

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

1 个回答

  • var 友原
    var 友原
    2019-12-09

    this.videoContext没定义啊,你是在哪里定义的。要先在页面上const定义

    2019-12-09
    赞同
    回复 3
    • 杉杉爱吃鱼
      杉杉爱吃鱼
      2019-12-09
      我在方法里面创建和定义的。我用bindtap 试了一下,这样写是好用的。
      2019-12-09
      回复
    • 杉杉爱吃鱼
      杉杉爱吃鱼
      2019-12-09
      小哥哥 你是用什么方法实现的这个功能呢
      2019-12-09
      回复
    • var 友原
      var 友原
      2019-12-09回复杉杉爱吃鱼
      不建议你用touchstart事件,我是用swiper的onchange来判断的,当swiper切换后判断当前的索引来进行操作
      2019-12-09
      回复
登录 后发表内容
问题标签