Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
web-project
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
海康威视
web-project
Commits
87abc61a
Commit
87abc61a
authored
Sep 27, 2024
by
张伯涛
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
换热站监控初步调整
parent
1ae79d33
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
703 additions
and
4 deletions
+703
-4
screenDisplay.vue
src/components/screenDisplay.vue
+30
-4
videoComponents.vue
src/components/videoComponents.vue
+673
-0
No files found.
src/components/screenDisplay.vue
View file @
87abc61a
...
...
@@ -424,6 +424,8 @@ import AMapLoader from "@amap/amap-jsapi-loader";
<div
class=
"thirdLeftLayer"
>
<div
class=
"thirdLeftLayer_one"
>
<div
class=
"titleStyleTwo"
><p>
换热站监控
</p></div>
<video-components
:queryParams=
"childParams"
:stopParams=
"stopParams"
/>
</div>
<div
class=
"thirdLeftLayer_one"
>
<div
class=
"titleStyleTwo"
><p>
电气柜监视
</p></div>
...
...
@@ -512,7 +514,7 @@ import { detectZoom } from "@/plugins/screen";
import
{
ElLoading
}
from
"element-plus"
;
import
{
ElMessage
}
from
"element-plus"
;
const
m
=
detectZoom
();
import
videoComponents
from
'./videoComponents.vue'
import
{
vue3ScrollSeamless
}
from
"vue3-scroll-seamless"
;
import
{
postServicCenterList
,
...
...
@@ -540,6 +542,7 @@ import moment from 'moment'
import
{
defineComponent
}
from
"vue"
;
export
default
defineComponent
({
components
:
{
videoComponents
,
vue3ScrollSeamless
},
watch
:
{
...
...
@@ -562,6 +565,15 @@ export default defineComponent({
},
data
()
{
return
{
childParams
:
''
,
stopParams
:
0
,
showVideo
:
false
,
VideoInfo
:
{
selectOptions
:
[],
value
:
[],
videoList
:
[],
playVideoList
:
[]
},
open
:
false
,
items
:
[
'Item 1'
,
'Item 2'
,
'Item 3'
,
'Item 4'
],
currentIndex
:
0
,
...
...
@@ -966,6 +978,7 @@ export default defineComponent({
this
.
$router
.
push
(
"/Home"
);
break
;
case
4
:
this
.
stopParams
+=
1
if
(
this
.
mapBack
!=
null
&&
this
.
mapLevel
!=
2
)
{
_this
.
servicCenterList
[
_this
.
mapBack
.
index
].
openF
=
false
;
_this
.
mapBack
.
map
=
null
;
...
...
@@ -2928,11 +2941,20 @@ export default defineComponent({
// 获取港益换热站视频数据
getGYTransferVideo
()
{
const
params
=
{
//
id: this.markerThree.stationId
id
:
'9C9D13FA-BA07-4394-8441-55F98F160EDA'
id
:
this
.
markerThree
.
stationId
//
id: '9C9D13FA-BA07-4394-8441-55F98F160EDA'
}
GYTransferVideo
(
params
).
then
(
res
=>
{
this
.
showVideo
=
true
const
list
=
res
.
data
this
.
VideoInfo
.
playVideoList
=
[]
list
.
forEach
(
video
=>
{
var
videoId
=
video
.
videoId
.
replaceAll
(
'-'
,
''
);
this
.
VideoInfo
.
playVideoList
.
push
(
videoId
);
})
const
videoList
=
[]
videoList
.
push
(
this
.
VideoInfo
.
playVideoList
[
0
])
this
.
childParams
=
JSON
.
stringify
(
videoList
)
})
},
// 获取港益换热站实时能耗数据
...
...
@@ -4184,6 +4206,10 @@ export default defineComponent({
letter-spacing
:
3px
;
font-size
:
120%
;
}
.videoComponents_Class
{
width
:
100%
;
height
:
100%
;
}
.gis_content
.titleStyleTwo
{
width
:
95%
;
height
:
35px
;
...
...
src/components/videoComponents.vue
0 → 100644
View file @
87abc61a
<
template
>
<!--
<el-card>
-->
<!--
<div
class=
"div-dropdown text-center"
>
-->
<!--
<el-row>
-->
<!--
<el-col
:span=
"7"
>
-->
<!--
<span>
换热站
:
</span>
-->
<!--
<el-cascader
:options=
"VideoInfo.selectOptions"
v-model=
"VideoInfo.value"
:props=
"props"
--
>
<!-- collapse-tags clearable :show-all-levels="false" filterable placeholder="请选择" style=""-->
<!-- :change="getVideoFromVideoList(VideoInfo.value)" @visible-change="visibleCascader" />-->
<!--
</el-col>
-->
<!--
<el-col
:span=
"10"
>
-->
<!--
</el-col>
-->
<!--
<el-col
:span=
"7"
>
-->
<!--
<el-row>
-->
<!--
<el-col
:span=
"6"
>
-->
<!--
</el-col>
-->
<!--
<el-col
:span=
"18"
>
-->
<!--
<el-button
id=
"startPlay"
class=
"el-button-button"
type=
"primary"
:span=
"6"
>
-->
<!-- 显示视频
</el-button>
-->
<!--
<el-button
id=
"stopPlay"
class=
"el-button-button"
type=
"primary"
:span=
"6"
--
>
<!-- @click="autoColBoxShow = !autoColBoxShow">隐藏视频
</el-button>
-->
<!--
<el-button
id=
"down"
class=
"el-button-button"
type=
"primary"
:span=
"6"
--
>
<!-- @click="down">下载插件
</el-button>
-->
<!--
</el-col>
-->
<!--
</el-row>
-->
<!--
</el-col>
-->
<!--
</el-row>
-->
<!--
</div>
-->
<!-- <!–
<div>
-->
<!-- 点击此处前往海康平台下载视频播放插件-->
<!--
</div>
–>
-->
<!--
</el-card>
-->
<div
class=
"videoPlayer"
id=
"playWnd"
>
</div>
</
template
>
<
style
lang=
"less"
scoped
>
.videoPlayer {
margin: 20px 0 0 0px;
// width: 1200px;
/*播放容器的宽和高设定*/
height: 200px;
// border: 1px solid black;
}
.el-button-button {
// margin-top: 5px;
width: 80px;
}
</
style
>
<
script
setup
>
// ../OutputFile/VideoWebPlugin.zip
import
{
ref
,
reactive
,
onMounted
,
onUnmounted
,
provide
,
computed
,
handleError
,
watch
}
from
'vue'
import
{
useRoute
}
from
'vue-router'
import
http
from
'../api/http'
import
store
from
"../store/index"
;
import
zhCn
from
'element-plus/dist/locale/zh-cn.mjs'
import
{
onBeforeRouteLeave
,
onBeforeRouteUpdate
}
from
'vue-router'
import
$
from
'jquery'
import
{
JSEncrypt
}
from
'jsencrypt'
import
{
WebControl
}
from
'../assets/script/video/web-control.esm.min.js'
import
{
onActivated
,
onDeactivated
}
from
'vue'
onActivated
(()
=>
{
if
(
route
.
query
.
id
){
VideoInfo
.
value
=
route
.
query
.
id
;
getVideoFromVideoList
(
route
.
query
.
id
);
}
// showPlay();
})
onDeactivated
(()
=>
{
hidePlay
();
})
const
route
=
useRoute
();
onBeforeRouteUpdate
((
to
,
from
)
=>
{
var
r
=
useRoute
();
console
.
log
(
'update'
)
console
.
log
(
r
.
query
.
id
);
if
(
r
.
query
.
id
){
VideoInfo
.
value
=
r
.
query
.
id
;
getVideoFromVideoList
(
r
.
query
.
id
);
}
})
//子组件接收父组件传递过来的值
const
pProps
=
defineProps
({
queryParams
:
{
type
:
String
,
required
:
true
,
},
stopParams
:
{
type
:
String
,
required
:
true
,
}
});
//声明公用变量
var
initCount
=
0
;
var
pubKey
=
''
;
var
playWnd_width
=
300
;
var
playWnd_height
=
200
;
var
oWebControl
;
var
videoIp
=
"218.69.97.198"
;;
var
videoPort
=
1443
;
const
enterpriseId
=
ref
(
null
);
enterpriseId
.
value
=
store
.
getters
.
getEnterpriseId
();
var
VideoInfo
=
reactive
({
selectOptions
:
[],
value
:
[],
videoList
:
[],
playVideoList
:
[]
});
const
props
=
{
multiple
:
false
,
emitPath
:
false
}
initPage
();
function
down
(){
//下载插件
const
filepath
=
'/OutputFile/VideoWebPlugin.zip'
;
window
.
open
(
filepath
);
}
function
resetVideoWidth
(){
var
menuWidth
=
localStorage
.
getItem
(
"tabWidth"
);
if
(
!
menuWidth
||
menuWidth
===
''
||
!
Number
(
menuWidth
)){
playWnd_width
=
window
.
innerWidth
-
200
;
}
else
{
playWnd_width
=
window
.
innerWidth
-
Number
(
menuWidth
);
}
console
.
log
(
'playVW'
,
playWnd_width
);
}
//获取服务中心->供热站->换热站,三级列表
function
getStats
()
{
var
result
=
store
.
getters
.
getEnterprise
();
var
enterpriseId
=
store
.
getters
.
getEnterpriseId
();
console
.
log
(
result
)
if
(
result
)
{
//找到对应的企业,将供热站与换热站机组信息建立关系
for
(
var
i
=
0
;
i
<
result
.
length
;
i
++
)
{
if
(
result
[
i
].
enterpriseId
===
enterpriseId
)
{
//找到对应的企业,开始构建
//服务中心->供热站->换热站
if
(
result
[
i
].
enterpriseId
===
"9bca54bc-8f27-4849-8d7d-50c5099e1949"
)
{
result
[
i
].
serviceCenterList
.
forEach
(
service
=>
{
var
serv
=
{}
serv
.
value
=
service
.
serviceCenterId
;
serv
.
label
=
service
.
serviceCenterName
;
serv
.
children
=
[];
service
.
supplyList
.
forEach
(
supply
=>
{
var
s
=
{}
//构建换热站
s
.
value
=
supply
.
supplyId
;
s
.
label
=
supply
.
supplyName
;
s
.
children
=
[];
supply
.
stationList
.
forEach
(
station
=>
{
var
tmpStation
=
{
value
:
station
.
stationId
,
label
:
station
.
stationName
}
s
.
children
.
push
(
tmpStation
);
})
//增加供热站节点
s
.
children
.
push
({
value
:
s
.
value
,
label
:
s
.
label
})
if
(
s
.
children
.
length
>
0
)
{
//判断该供热站是否有换热站机组,若有则加入列表
serv
.
children
.
push
(
s
);
}
})
if
(
serv
.
children
.
length
>
0
)
{
VideoInfo
.
selectOptions
.
push
(
serv
)
}
})
}
else
{
result
[
i
].
supplyList
.
forEach
(
supply
=>
{
var
s
=
{}
//构建换热站
s
.
value
=
supply
.
supplyId
;
s
.
label
=
supply
.
supplyName
;
s
.
children
=
[];
supply
.
transferList
.
forEach
(
unit
=>
{
var
tmpUnit
=
{
value
:
unit
.
unitId
,
label
:
unit
.
unitName
}
s
.
children
.
push
(
tmpUnit
);
})
if
(
s
.
children
.
length
>
0
)
{
//判断该供热站是否有换热站机组,若有则加入列表
VideoInfo
.
selectOptions
.
push
(
s
);
}
})
}
}
}
}
}
//从数据库获得监控点信息
function
getVideoInfo
()
{
http
.
post
(
'/api/video/GetVideoTable'
).
then
((
result
)
=>
{
//若获得视频列表,则存入
if
(
result
.
data
.
count
>
0
)
{
VideoInfo
.
videoList
.
push
.
apply
(
VideoInfo
.
videoList
,
result
.
data
.
dataTable
);
}
})
}
//页面初始化
function
initPage
()
{
getVideoInfo
();
//视频信息
getStats
();
//下拉列表
console
.
log
(
'VideoInfo.selectOptions'
,
VideoInfo
.
selectOptions
)
if
(
route
.
query
.
id
){
//设置选择框
VideoInfo
.
value
=
route
.
query
.
id
;
//播放视频
getVideoFromVideoList
(
route
.
query
.
id
);
}
}
//从视频列表中找到当前被选中的换热站对应的所有视频id
function
getVideoFromVideoList
(
value
)
{
console
.
log
(
'value'
,
value
)
stopAllPreview
();
VideoInfo
.
playVideoList
.
length
=
0
;
VideoInfo
.
playVideoList
=
value
// VideoInfo.videoList.forEach(video => {
// if (video.stationId === Id) {
// var videoId = video.videoId.replaceAll('-', '');
// VideoInfo.playVideoList.push(videoId);
// }
// })
if
(
oWebControl
)
{
playVideoByVideoList
(
VideoInfo
.
playVideoList
)
}
}
// function visibleCascader(isshow) {
// if (!oWebControl) {
// return;
// }
// if (isshow) {
// hidePlay();
// } else {
// showPlay();
// }
// }
// $(document).ready(async function () {
// await initIp();//ip
// initPlugin();
// $('#startPlay').click(
// function () {
// if (oWebControl) {
// showPlay();
// } else {
// initPlugin();
// }
// }
// )
// $('#stopPlay').click(
// function () {
// hidePlay();
// }
// )
// })
onUnmounted
(()
=>
{
hidePlay
();
})
// 创建播放实例
function
initPlugin
()
{
oWebControl
=
new
WebControl
({
szPluginContainer
:
"playWnd"
,
// 指定容器id
iServicePortStart
:
15900
,
// 指定起止端口号,建议使用该值
iServicePortEnd
:
15900
,
szClassId
:
"23BF3B0A-2C56-4D97-9C03-0CB103AA8F11"
,
// 用于IE10使用ActiveX的clsid
cbConnectSuccess
:
function
()
{
// 创建WebControl实例成功
console
.
log
(
'创建成功'
)
oWebControl
.
JS_StartService
(
"window"
,
{
// WebControl实例创建成功后需要启动服务
dllPath
:
"./VideoPluginConnect.dll"
// 值"./VideoPluginConnect.dll"写死
}).
then
(
function
()
{
// 启动插件服务成功
oWebControl
.
JS_SetWindowControlCallback
({
// 设置消息回调
cbIntegrationCallBack
:
cbIntegrationCallBack
});
oWebControl
.
JS_CreateWnd
(
"playWnd"
,
playWnd_width
,
playWnd_height
).
then
(
function
()
{
//JS_CreateWnd创建视频播放窗口,宽高可设定
init
();
// 创建播放实例成功后初始化
});
},
function
()
{
// 启动插件服务失败
});
//playVideo()
setTimeout
(()
=>
playVideoByVideoList
(
VideoInfo
.
playVideoList
),
2000
)
},
cbConnectError
:
function
()
{
// 创建WebControl实例失败
console
.
log
(
'创建失败'
)
oWebControl
=
null
;
$
(
"#playWnd"
).
html
(
"插件未启动,正在尝试启动,请稍候..."
);
WebControl
.
JS_WakeUp
(
"VideoWebPlugin://"
);
// 程序未启动时执行error函数,采用wakeup来启动程序
initCount
++
;
if
(
initCount
<
3
)
{
setTimeout
(
function
()
{
initPlugin
();
},
3000
)
}
else
{
$
(
"#playWnd"
).
html
(
"插件启动失败,请检查插件是否安装!"
);
}
},
cbConnectClose
:
function
(
bNormalClose
)
{
// 异常断开:bNormalClose = false
// JS_Disconnect正常断开:bNormalClose = true
console
.
log
(
"cbConnectClose"
);
oWebControl
=
null
;
$
(
"#playWnd"
).
html
(
"插件未启动,正在尝试启动,请稍候..."
);
WebControl
.
JS_WakeUp
(
"VideoWebPlugin://"
);
initCount
++
;
if
(
initCount
<
3
)
{
setTimeout
(
function
()
{
initPlugin
();
},
3000
)
}
else
{
$
(
"#playWnd"
).
html
(
"插件启动失败,请检查插件是否安装!"
);
}
}
});
}
// 设置窗口控制回调
function
setCallbacks
()
{
oWebControl
.
JS_SetWindowControlCallback
({
cbIntegrationCallBack
:
cbIntegrationCallBack
});
}
// 推送消息
function
cbIntegrationCallBack
(
oData
)
{
}
//初始化ip
async
function
initIp
(){
var
res
;
try
{
res
=
await
fetch
(
'https://api.ipify.org?format=json'
);
const
data
=
await
res
.
json
();
var
serverIP
=
data
.
ip
;
if
(
serverIP
===
"111.160.132.74"
||
serverIP
===
"218.69.97.198"
){
videoIp
=
"192.168.1.130"
;
}
else
{
videoIp
=
"218.69.97.198"
;
}
}
catch
(
e
){
videoIp
=
"218.69.97.198"
;
}
videoPort
=
1443
;
}
//初始化插件
function
init
()
{
getPubKey
(
function
()
{
console
.
log
(
"ip:"
+
videoIp
);
////////////////////////////////// 请自行修改以下变量值 ////////////////////////////////////
var
appkey
=
"27337031"
;
//综合安防管理平台提供的appkey,必填
var
secret
=
setEncrypt
(
"MI9Q4eAHC0Ip7bVX2Sov"
);
//综合安防管理平台提供的secret,必填
var
ip
=
videoIp
;
//综合安防管理平台IP地址,必填
var
playMode
=
0
;
//初始播放模式:0-预览,1-回放
var
port
=
videoPort
;
//综合安防管理平台端口,若启用HTTPS协议,默认443
var
snapDir
=
"D:
\\
SnapDir"
;
//抓图存储路径
var
videoDir
=
"D:
\\
VideoDir"
;
//紧急录像或录像剪辑存储路径
var
layout
=
"1x1"
;
//playMode指定模式的布局
var
enableHTTPS
=
1
;
//是否启用HTTPS协议与综合安防管理平台交互,这里总是填1
var
encryptedFields
=
'secret'
;
//加密字段,默认加密领域为secret
var
showToolbar
=
0
;
//是否显示工具栏,0-不显示,非0-显示
var
showSmart
=
0
;
//是否显示智能信息(如配置移动侦测后画面上的线框),0-不显示,非0-显示
var
buttonIDs
=
"0,1,16,256,257,258,259,260,512,513,514,515,516,517,768,769"
;
//自定义工具条按钮
////////////////////////////////// 请自行修改以上变量值 ////////////////////////////////////
oWebControl
.
JS_RequestInterface
({
funcName
:
"init"
,
argument
:
JSON
.
stringify
({
appkey
:
appkey
,
//API网关提供的appkey
secret
:
secret
,
//API网关提供的secret
ip
:
ip
,
//API网关IP地址
playMode
:
playMode
,
//播放模式(决定显示预览还是回放界面)
port
:
port
,
//端口
snapDir
:
snapDir
,
//抓图存储路径
videoDir
:
videoDir
,
//紧急录像或录像剪辑存储路径
layout
:
layout
,
//布局
enableHTTPS
:
enableHTTPS
,
//是否启用HTTPS协议
encryptedFields
:
encryptedFields
,
//加密字段
showToolbar
:
showToolbar
,
//是否显示工具栏
showSmart
:
showSmart
,
//是否显示智能信息
buttonIDs
:
buttonIDs
//自定义工具条按钮
})
}).
then
(
function
(
oData
)
{
oWebControl
.
JS_Resize
(
390
,
250
);
// 初始化后resize一次,规避firefox下首次显示窗口后插件窗口未与DIV窗口重合问题
});
});
}
//获取公钥
function
getPubKey
(
callback
)
{
oWebControl
.
JS_RequestInterface
({
funcName
:
"getRSAPubKey"
,
argument
:
JSON
.
stringify
({
keyLength
:
1024
})
}).
then
(
function
(
oData
)
{
console
.
log
(
oData
);
if
(
oData
.
responseMsg
.
data
)
{
pubKey
=
oData
.
responseMsg
.
data
;
callback
()
}
})
}
//RSA加密
function
setEncrypt
(
value
)
{
var
encrypt
=
new
JSEncrypt
();
encrypt
.
setPublicKey
(
pubKey
);
return
encrypt
.
encrypt
(
value
);
}
// 监听resize事件,使插件窗口尺寸跟随DIV窗口变化
$
(
window
).
resize
(
function
()
{
resetVideoWidth
();
if
(
oWebControl
!=
null
)
{
oWebControl
.
JS_Resize
(
playWnd_width
,
playWnd_height
);
setWndCover
();
}
});
function
resizeVideo
()
{
resetVideoWidth
();
if
(
oWebControl
!=
null
)
{
oWebControl
.
JS_Resize
(
playWnd_width
,
playWnd_height
);
setWndCover
();
}
}
// 监听滚动条scroll事件,使插件窗口跟随浏览器滚动而移动
$
(
window
).
scroll
(
function
()
{
resetVideoWidth
();
if
(
oWebControl
!=
null
)
{
oWebControl
.
JS_Resize
(
playWnd_width
,
playWnd_height
);
setWndCover
();
}
});
// 设置窗口裁剪,当因滚动条滚动导致窗口需要被遮住的情况下需要JS_CuttingPartWindow部分窗口
function
setWndCover
()
{
var
iWidth
=
$
(
window
).
width
();
var
iHeight
=
$
(
window
).
height
();
var
oDivRect
=
$
(
"#playWnd"
).
get
(
0
).
getBoundingClientRect
();
var
iCoverLeft
=
(
oDivRect
.
left
<
0
)
?
Math
.
abs
(
oDivRect
.
left
)
:
0
;
var
iCoverTop
=
(
oDivRect
.
top
<
0
)
?
Math
.
abs
(
oDivRect
.
top
)
:
0
;
var
iCoverRight
=
(
oDivRect
.
right
-
iWidth
>
0
)
?
Math
.
round
(
oDivRect
.
right
-
iWidth
)
:
0
;
var
iCoverBottom
=
(
oDivRect
.
bottom
-
iHeight
>
0
)
?
Math
.
round
(
oDivRect
.
bottom
-
iHeight
)
:
0
;
iCoverLeft
=
(
iCoverLeft
>
playWnd_width
)
?
playWnd_width
:
iCoverLeft
;
iCoverTop
=
(
iCoverTop
>
playWnd_height
)
?
playWnd_height
:
iCoverTop
;
iCoverRight
=
(
iCoverRight
>
playWnd_width
)
?
playWnd_width
:
iCoverRight
;
iCoverBottom
=
(
iCoverBottom
>
playWnd_height
)
?
playWnd_height
:
iCoverBottom
;
oWebControl
.
JS_RepairPartWindow
(
0
,
0
,
playWnd_width
+
1
,
playWnd_height
);
// 多1个像素点防止还原后边界缺失一个像素条
if
(
iCoverLeft
!=
0
)
{
oWebControl
.
JS_CuttingPartWindow
(
0
,
0
,
iCoverLeft
,
playWnd_height
);
}
if
(
iCoverTop
!=
0
)
{
oWebControl
.
JS_CuttingPartWindow
(
0
,
0
,
playWnd_width
+
1
,
iCoverTop
);
// 多剪掉一个像素条,防止出现剪掉一部分窗口后出现一个像素条
}
if
(
iCoverRight
!=
0
)
{
oWebControl
.
JS_CuttingPartWindow
(
playWnd_width
-
iCoverRight
,
0
,
iCoverRight
,
playWnd_height
);
}
if
(
iCoverBottom
!=
0
)
{
oWebControl
.
JS_CuttingPartWindow
(
0
,
playWnd_height
-
iCoverBottom
,
playWnd_width
,
iCoverBottom
);
}
}
//视频预览功能
$
(
"#startPreview"
).
click
(
function
()
{
var
cameraIndexCode
=
$
(
"#cameraIndexCode"
).
val
();
//获取输入的监控点编号值,必填
var
streamMode
=
0
;
//主子码流标识:0-主码流,1-子码流
var
transMode
=
1
;
//传输协议:0-UDP,1-TCP
var
gpuMode
=
0
;
//是否启用GPU硬解,0-不启用,1-启用
var
wndId
=
-
1
;
//播放窗口序号(在2x2以上布局下可指定播放窗口)
cameraIndexCode
=
cameraIndexCode
.
replace
(
/
(
^
\s
*
)
/g
,
""
);
cameraIndexCode
=
cameraIndexCode
.
replace
(
/
(\s
*$
)
/g
,
""
);
oWebControl
.
JS_RequestInterface
({
funcName
:
"startPreview"
,
argument
:
JSON
.
stringify
({
cameraIndexCode
:
cameraIndexCode
,
//监控点编号
streamMode
:
streamMode
,
//主子码流标识
transMode
:
transMode
,
//传输协议
gpuMode
:
gpuMode
,
//是否开启GPU硬解
wndId
:
wndId
//可指定播放窗口
})
})
});
//停止全部预览
function
stopAllPreview
()
{
if
(
!
oWebControl
)
{
return
;
}
oWebControl
.
JS_RequestInterface
({
funcName
:
"stopAllPreview"
});
};
//播放视频函数,需要传入监控点编码☆☆☆☆
function
playVideo
(
videoCode
)
{
// stopAllPreview();
var
cameraIndexCode
=
videoCode
.
replaceAll
(
'-'
,
''
);
//字母必须小写
if
(
String
(
cameraIndexCode
)
===
''
)
{
return
;
}
console
.
log
(
"play:"
+
String
(
cameraIndexCode
));
var
cameraIndexCode
=
String
(
cameraIndexCode
);
//获取输入的监控点编号值,必填
var
streamMode
=
0
;
//主子码流标识:0-主码流,1-子码流
var
transMode
=
1
;
//传输协议:0-UDP,1-TCP
var
gpuMode
=
0
;
//是否启用GPU硬解,0-不启用,1-启用
var
wndId
=
-
1
;
//播放窗口序号(在2x2以上布局下可指定播放窗口)
cameraIndexCode
=
cameraIndexCode
.
replace
(
/
(
^
\s
*
)
/g
,
""
);
cameraIndexCode
=
cameraIndexCode
.
replace
(
/
(\s
*$
)
/g
,
""
);
oWebControl
.
JS_RequestInterface
({
funcName
:
"startPreview"
,
argument
:
JSON
.
stringify
({
cameraIndexCode
:
cameraIndexCode
,
//监控点编号
streamMode
:
streamMode
,
//主子码流标识
transMode
:
transMode
,
//传输协议
gpuMode
:
gpuMode
,
//是否开启GPU硬解
wndId
:
wndId
//可指定播放窗口
})
})
}
function
playVideoByVideoList
(
videoList
)
{
if
(
!
videoList
||
videoList
.
length
===
0
)
{
return
;
}
var
streamMode
=
0
;
//主子码流标识:0-主码流,1-子码流
var
transMode
=
1
;
//传输协议:0-UDP,1-TCP
var
gpuMode
=
0
;
//是否启用GPU硬解,0-不启用,1-启用
var
wndId
=
-
1
;
//播放窗口序号(在2x2以上布局下可指定播放窗口)
var
list
=
[]
for
(
var
i
=
0
;
i
<
videoList
.
length
;
i
++
)
{
if
(
!
videoList
[
i
]
||
videoList
[
i
]
===
''
)
{
continue
;
}
var
cameraIndexCode
=
videoList
[
i
].
replaceAll
(
'-'
,
''
);
cameraIndexCode
=
cameraIndexCode
.
replace
(
/
(
^
\s
*
)
/g
,
""
);
cameraIndexCode
=
cameraIndexCode
.
replace
(
/
(\s
*$
)
/g
,
""
);
var
tmp
=
{
cameraIndexCode
:
cameraIndexCode
,
//监控点编号
streamMode
:
streamMode
,
//主子码流标识
transMode
:
transMode
,
//传输协议
gpuMode
:
gpuMode
,
//是否开启GPU硬解
wndId
:
i
+
1
//可指定播放窗口
}
list
.
push
(
tmp
);
}
if
(
list
.
length
===
0
)
{
return
;
}
oWebControl
.
JS_RequestInterface
({
funcName
:
"startMultiPreviewByCameraIndexCode"
,
argument
:
JSON
.
stringify
({
list
:
list
})
})
}
//隐藏播放窗口
function
hidePlay
()
{
if
(
typeof
oWebControl
!==
"undefined"
&&
oWebControl
!=
null
)
{
oWebControl
.
JS_HideWnd
();
}
}
function
showPlay
()
{
resizeVideo
();
if
(
typeof
oWebControl
!==
"undefined"
&&
oWebControl
!=
null
)
{
oWebControl
.
JS_ShowWnd
();
}
}
//播放视频函数测试,需要传入监控点编码☆☆☆☆
function
playVideotest
(
cameraIndexCode
)
{
if
(
String
(
cameraIndexCode
)
===
''
)
{
return
;
}
var
cameraIndexCode
=
String
(
cameraIndexCode
);
//获取输入的监控点编号值,必填
var
streamMode
=
0
;
//主子码流标识:0-主码流,1-子码流
var
transMode
=
1
;
//传输协议:0-UDP,1-TCP
var
gpuMode
=
0
;
//是否启用GPU硬解,0-不启用,1-启用
var
wndId
=
-
1
;
//播放窗口序号(在2x2以上布局下可指定播放窗口)
cameraIndexCode
=
cameraIndexCode
.
replace
(
/
(
^
\s
*
)
/g
,
""
);
cameraIndexCode
=
cameraIndexCode
.
replace
(
/
(\s
*$
)
/g
,
""
);
oWebControl
.
JS_RequestInterface
({
funcName
:
"startPreview"
,
argument
:
JSON
.
stringify
({
cameraIndexCode
:
cameraIndexCode
,
//监控点编号
streamMode
:
streamMode
,
//主子码流标识
transMode
:
transMode
,
//传输协议
gpuMode
:
gpuMode
,
//是否开启GPU硬解
wndId
:
wndId
//可指定播放窗口
})
})
}
watch
(
()
=>
pProps
.
queryParams
,
async
(
newData
)
=>
{
await
initIp
();
//ip
initPlugin
();
showPlay
()
const
params
=
JSON
.
parse
(
pProps
.
queryParams
)
// const params = ['31c0d567dd1944d5b4ea3eddf94f740b']
console
.
log
(
'params'
,
params
)
getVideoFromVideoList
(
params
)
}
)
watch
(
()
=>
pProps
.
stopParams
,
async
(
newData
)
=>
{
console
.
log
(
'停停停停停停停停停停停停'
)
hidePlay
();
}
)
// watch(()=>route.params.id, watchEvent, { immediate: true })
// //监听回调函数
// function watchEvent(id){
// if(!VideoInfo.playVideoList){
// return;
// }
// getVideoFromVideoList(id);
// }
defineExpose
({
hidePlay
,
showPlay
,
resizeVideo
})
</
script
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment