一、代码思路详解
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
},