From 1c5f22e6539dcb1bc9dec6101efa2c312d78bc5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E9=91=AB?= Date: Mon, 11 Jan 2021 21:07:42 +0800 Subject: [PATCH] =?UTF-8?q?vxg=E6=9B=B4=E6=8D=A2=E6=88=90vlc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/cameraManage/model.vue | 90 ++++++------ src/views/realTimeMonitoring/index.vue | 189 +++++++++++++------------ src/views/realTimeMonitoring/model.vue | 71 ++++------ 3 files changed, 171 insertions(+), 179 deletions(-) diff --git a/src/views/cameraManage/model.vue b/src/views/cameraManage/model.vue index dbb57e0..b6f8abc 100644 --- a/src/views/cameraManage/model.vue +++ b/src/views/cameraManage/model.vue @@ -35,24 +35,25 @@ @@ -65,30 +61,31 @@ export default { player:"", visible:false, modelData:[], + vlcz: null }; }, inject: ['reload'], mounted() { console.log('index mounted执行了') this.getRealTimeList() - // this.getSdVideos() }, destroyed(){ }, - beforeRouteLeave(to,form,next){ - if(window.vxgplayer){ - this.realTimeListData.forEach(function (item) { - console.log(item) - item.cameras.forEach(function (item) { - window.vxgplayer('video'+item.id).dispose(); - }) - next(true) - }) - }else { - next(true) - } - + beforeRouteLeave(to,form,next) { + // if(this.vlcz){ + // var that = this + // this.realTimeListData.forEach(function (item) { + // console.log(item) + // var $that = that + // item.cameras.forEach(function (item) { + // $that.vlcz.playlist.stop(); + // }) + // next(true) + // }) + // }else{ + // next(true) + // } }, methods: { getRealTimeList(){ @@ -99,44 +96,50 @@ export default { console.log(res.data) if(res.code == 200) { this.realTimeListData = res.data - console.log('首页getRealTimeList方法执行了') - res.data.forEach(function (item) { - // console.log(item.cameras) - var $that = that - console.log('进来第一层循环了') - item.cameras.forEach(function (item) { - // console.log(item.rtsp) - console.log('进来第二层循环了') - $that.playVideo('video'+item.id,item.rtsp) - }) - }) + // res.data.forEach(function (item) { + // // console.log(item.cameras) + // var $that = that + // item.cameras.forEach(function (item) { + // // console.log(item.rtsp) + // $that.playVideo('video'+item.id,item.rtsp) + // }) + // }) } }).catch(err => { console.log(err) }) }, - playVideo(id,rtsp){ - // 设置url 播放 ---添加到事件队列在下一个tick执行,避免 TypeError: t.module.postMessage is not a function - this.$nextTick(() => { - // window.vxgplayer('vxg_media_player1').stop(); - window.vxgplayer(id).src(rtsp); - window.vxgplayer(id).play(); - }) - }, - tabsChange(key){ + // playVideo(id,rtsp){ + // // 设置url 播放 ---添加到事件队列在下一个tick执行,避免 TypeError: t.module.postMessage is not a function + // this.$nextTick(() => { + // var vlc = document.getElementById(`${id}`); + // var options = new Array(":network-caching=100");//减少延迟 + // var vlcItem = vlc.playlist.add(`${rtsp}`, `${id}`, options); + // // vlc.playlist.play() + // vlc.playlist.playItem(vlcItem); + // console.log('切换大屏前') + // }) + // }, + tabsChange(key) { console.log(key) }, - showModel(item){ + showModel(item) { console.log(item) this.visible = true - this.modelData=item - console.log(vxgplayer('video'+item.id)) - // vxgplayer('video'+item.id).fullscreen() + this.modelData = item + // this.vlcz.playlist.stop() }, - closeModel(visible,data){ + closeModel(visible, data) { this.visible = visible - this.modelData=data - // vxgplayer('video'+data.id).changedFullscreen() + this.modelData = data + this.reload() + this.tabsChange() + console.log(this.realTimeListData) + console.log('切换大屏后') + // console.log(this.vlcz.playlist.currentItem) + // console.log(this.vlcz.playlist.isPlaying) + // this.vlcz.playlist.play() + // console.log(this.vlcz.playlist.isPlaying) } }, components:{ @@ -173,34 +176,42 @@ export default { transform-origin: center; transition: all 0.2s linear; } + .anticon-rotate { transform: rotate(180deg); } } } } - #video-cav{ - position: fixed; - z-index: 999; - border: solid 1px skyblue; - width: 390px; - height: 219px; - } - .flex-layouts{ + + /*#video-cav{*/ + /* position: fixed;*/ + /* z-index: 999;*/ + /* border: solid 1px skyblue;*/ + /* width: 390px;*/ + /* height: 219px;*/ + /*}*/ + .flex-layouts { display: flex; width: 1630px; flex-wrap: wrap; } - .video-list{ + + .video-list { display: flex; - .video-item{ + + .video-item { display: flex; width: 100%; + height: 219px; position: relative; margin: 3px; cursor: pointer; z-index: 10; - .video-name{ + /*.video-obj{*/ + + /*}*/ + .video-name { position: absolute; top: 15px; left: 15px; @@ -209,24 +220,14 @@ export default { font-size: 16px; z-index: 10; } - .video-model{ + + .video-model { position: absolute; top: 0; left: 0; width: 100%; height: 100%; - z-index: 10; - } - - /*.video{*/ - /* border: solid 1px #000000;*/ - /* background: #001529;*/ - /* width: 400px;*/ - /* height: 225px;*/ - /*}*/ - .vxgplayer { - border: none; - margin: 0; + z-index: 20; } } } diff --git a/src/views/realTimeMonitoring/model.vue b/src/views/realTimeMonitoring/model.vue index 90a29d9..7c7a262 100644 --- a/src/views/realTimeMonitoring/model.vue +++ b/src/views/realTimeMonitoring/model.vue @@ -1,15 +1,15 @@