1.在global.config.js文件中,设置公共静态视频
staticVideoSrc: num => {
return Array(num)
.fill()
.map((el, index) => {
return {
name: '视频' + Number(index + 1),
url: 'http://xxxx.mp4',
};
});
}, // 静态视频
2.在视频监控的vue文件中,template 中
<div class="monitor-video">
<!-- 四宫格 -->
<div v-show="videoFourShow" class="video-body-four" v-for="(item, index) in videoList" :key="index">
<myVideo :item="item" />
</div>
<!-- 九宫格 -->
<div v-show="videoNineShow" class="video-body-nine" v-for="(item, index) in videoNineList" :key="index">
<video :id="`myVideo${index}`" :src="item.url" width="398px" height="200px" margin-right="20px" loop controls muted autoplay></video>
</div>
<!-- 十六宫格 -->
<div v-show="videoSixteenShow" class="video-body-sixteen" v-for="(item, index) in videoSixteenList" :key="index">
<video :id="`myVideo${index}`" :src="item.url" width="290px" height="140px" margin-right="20px" loop controls muted autoplay></video>
</div>
</div>
3.在视频监控的vue文件中,data中
videoList: [],
videoNineList: g_config.staticVideoSrc(9),
videoSixteenList: g_config.staticVideoSrc(16),
curIndex: 0,
4.在视频监控的vue文件中,method中
initVideo(item) {
this.$nextTick(() => {
// eslint-disable-next-line no-undef
this.myPlayer = videojs('myVideo' + item.id, {
controls: true,
autoplay: false,
preload: 'auto',
width: '600px',
height: '320px',
});
});
},
5.在视频监控的vue文件中,beforeDestroy中
beforeDestroy() {
this.myPlayer && this.myPlayer.dispose();
},