一个页面中有多个视频播放

单页面中多个video标签

前几天做了一个项目,一个页面中有六个video标签,视频自动播放,需要联播。一开始使用点击事件click,点击非控件可行,能够实现上述功能,但是当点击控件比如播放按钮的时候,视频就重叠了,后来才得知可以使用onplay事件

vue项目

<div class="img" @click="videoPlay(index)">
  <video :src="sport.url" controls="controls" ref="video" @ended="audioEnd" @play="playVideo(index)" ></video>
</div>

playVideo(index) { // 点击的是播放按钮
  this.play(index);
},
videoPlay(index) { // 点击的是控件以外的地方
  const video = this.$refs.video;
  // 如果播放 就暂停 否则 播放
  if (!video[index].paused) {
    video[index].pause();
    return;
  } else {
    video[index].play();
  }
  this.play(index);
},
audioEnd() {
  // 播放结束 index+1 播放下一条
  const video = this.$refs.video;
  this.index++;
  if (this.index === this.sportsArticleList.length) {
    this.index = 0;
    return;
  }
  video[this.index].play();
},
play(index) {
  // 播放当前 其它都暂停
  const video = this.$refs.video;
  this.index = index;
  video[index].play();
  video.forEach((item, ind) => {
    if (ind !== index) {
      item.pause();
    }
  });
}

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值