uniapp开发微信小程序-video组件控制多个视频只播放一个

2,754 阅读1分钟

一、代码思路详解

1、template

  • 1、循环视频列表,设置id属性;
  • 2、@play事件,当开始/继续播放时触发play事件,传递id;
<view v-for="item,index in list" :key="item.id">
    <video :src="item.video" :id="`video${item.id}`" @play='videoPlay(item.id)'></video>
</view>

2、methods

  • 1、此处需要定义好变量,用于确定当前播放的视频是哪个,本次以playId为例;
  • 2、uni.createVideoContext用于创建并返回 video 上下文 videoContext 对象;
  • 3、点击播放或者暂停时,如果playId不为空,则以上次的playId创建上下文,并停止播放pause()
  • 4、随后把当前id赋予playId。
videoPlay(id) {
    if (this.playId != '') {
        let videoContext = uni.createVideoContext(`video${this.playId}`)
        videoContext.pause()
    }
    this.playId = id
},