Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
video-monitoring
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
刘怀志
video-monitoring
Commits
2707092b
Commit
2707092b
authored
Jul 26, 2024
by
刘怀志
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
init-2
parent
b26c23bb
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
174 additions
and
2 deletions
+174
-2
index.html
public/index.html
+4
-0
jsencrypt.min.js
public/js/jsencrypt.min.js
+0
-0
web-control_1.2.5.min.js
public/js/web-control_1.2.5.min.js
+0
-0
index.vue
src/views/video/index.vue
+170
-2
No files found.
public/index.html
View file @
2707092b
...
...
@@ -7,6 +7,10 @@
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
>
<link
rel=
"icon"
href=
"<%= BASE_URL %>favicon.ico"
>
<title><
%=
webpackConfig
.
name
%
></title>
<!-- 在index.html或相应的HTML文件中引入JS文件 -->
<script
src=
"/js/jsencrypt.min.js"
></script>
<script
src=
"/js/web-control_1.2.5.min.js"
></script>
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
<style>
html
,
...
...
public/jsencrypt.min.js
→
public/js
/js
encrypt.min.js
View file @
2707092b
File moved
public/web-control_1.2.5.min.js
→
public/
js/
web-control_1.2.5.min.js
View file @
2707092b
File moved
src/views/video/index.vue
View file @
2707092b
<
template
>
<div>
1233
<button
style=
"width:20px;padding:0;margin:0;"
id=
"startPreview"
class=
"btn"
@
click=
"startPreview"
>
预览
</button>
<button
style=
"width:90px;padding:0;margin:0;"
id=
"stopAllPreview"
class=
"btn"
@
click=
"stopPreview"
>
停止全部预览
</button>
<!-- 创建一个用于显示视频的容器 -->
<div
id=
"playWnd"
style=
"width: 100%; height: 100%;"
></div>
</div>
</
template
>
<
script
>
export
default
{
name
:
"index"
name
:
"index"
,
data
()
{
return
{
oWebControl
:
null
,
playWndWidth
:
'640'
,
playWndHeight
:
'480'
,
initCount
:
0
,
pubKey
:
''
};
},
mounted
()
{
this
.
initPlugin
();
},
beforeDestroy
()
{
if
(
this
.
oWebControl
!=
null
){
this
.
oWebControl
.
JS_HideWnd
();
// 先让窗口隐藏,规避可能的插件窗口滞后于浏览器消失问题
this
.
oWebControl
.
JS_Disconnect
().
then
(
function
(){
// 断开与插件服务连接成功
},
function
()
{
// 断开与插件服务连接失败
});
}
},
methods
:
{
startPreview
()
{
var
cameraIndexCode
=
'123'
;
//获取输入的监控点编号值,必填
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
,
""
);
this
.
oWebControl
.
JS_RequestInterface
({
funcName
:
"startPreview"
,
argument
:
JSON
.
stringify
({
cameraIndexCode
:
cameraIndexCode
,
//监控点编号
streamMode
:
streamMode
,
//主子码流标识
transMode
:
transMode
,
//传输协议
gpuMode
:
gpuMode
,
//是否开启GPU硬解
wndId
:
wndId
//可指定播放窗口
})
})
},
stopPreview
()
{
this
.
oWebControl
.
JS_RequestInterface
({
funcName
:
"stopAllPreview"
});
},
initPlugin
()
{
const
that
=
this
;
// 初始化插件
this
.
oWebControl
=
new
WebControl
({
szPluginContainer
:
"playWnd"
,
// 指定容器id
iServicePortStart
:
15900
,
// 指定起止端口号,建议使用该值
iServicePortEnd
:
15900
,
szClassId
:
"23BF3B0A-2C56-4D97-9C03-0CB103AA8F11"
,
// 用于IE10使用ActiveX的clsid
cbConnectSuccess
:
function
()
{
// 创建WebControl实例成功
that
.
oWebControl
.
JS_StartService
(
"window"
,
{
// WebControl实例创建成功后需要启动服务
dllPath
:
"./VideoPluginConnect.dll"
// 值"./VideoPluginConnect.dll"写死
}).
then
(
function
()
{
// 启动插件服务成功
that
.
oWebControl
.
JS_SetWindowControlCallback
({
// 设置消息回调
cbIntegrationCallBack
:
that
.
cbIntegrationCallBack
});
that
.
oWebControl
.
JS_CreateWnd
(
"playWnd"
,
1000
,
600
).
then
(
function
()
{
//JS_CreateWnd创建视频播放窗口,宽高可设定
that
.
init
();
// 创建播放实例成功后初始化
});
},
function
()
{
// 启动插件服务失败
});
},
cbConnectError
:
function
()
{
// 创建WebControl实例失败
that
.
oWebControl
=
null
;
WebControl
.
JS_WakeUp
(
"VideoWebPlugin://"
);
// 程序未启动时执行error函数,采用wakeup来启动程序
that
.
initCount
++
;
if
(
that
.
initCount
<
3
)
{
setTimeout
(
function
()
{
that
.
initPlugin
();
},
3000
)
}
else
{
}
},
cbConnectClose
:
function
(
bNormalClose
)
{
// 异常断开:bNormalClose = false
// JS_Disconnect正常断开:bNormalClose = true
console
.
log
(
"cbConnectClose"
);
that
.
oWebControl
=
null
;
WebControl
.
JS_WakeUp
(
"VideoWebPlugin://"
);
that
.
initCount
++
;
if
(
initCount
<
3
)
{
setTimeout
(
function
()
{
that
.
initPlugin
();
},
3000
)
}
else
{
}
}
});
},
init
()
{
let
that
=
this
this
.
getPubKey
(
function
()
{
////////////////////////////////// 请自行修改以下变量值 ////////////////////////////////////
var
appkey
=
"28730366"
;
//综合安防管理平台提供的appkey,必填
var
secret
=
that
.
setEncrypt
(
"HSZkCJpSJ7gSUYrO6wVi"
);
//综合安防管理平台提供的secret,必填
var
ip
=
"10.19.132.75"
;
//综合安防管理平台IP地址,必填
var
playMode
=
0
;
//初始播放模式:0-预览,1-回放
var
port
=
443
;
//综合安防管理平台端口,若启用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
=
1
;
//是否显示工具栏,0-不显示,非0-显示
var
showSmart
=
1
;
//是否显示智能信息(如配置移动侦测后画面上的线框),0-不显示,非0-显示
var
buttonIDs
=
"0,16,256,257,258,259,260,512,513,514,515,516,517,768,769"
;
//自定义工具条按钮
////////////////////////////////// 请自行修改以上变量值 ////////////////////////////////////
that
.
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
)
{
that
.
oWebControl
.
JS_Resize
(
1000
,
600
);
// 初始化后resize一次,规避firefox下首次显示窗口后插件窗口未与DIV窗口重合问题
});
})
},
setEncrypt
(
value
)
{
var
encrypt
=
new
JSEncrypt
();
encrypt
.
setPublicKey
(
this
.
pubKey
);
return
encrypt
.
encrypt
(
value
);
},
getPubKey
(
callback
)
{
let
that
=
this
this
.
oWebControl
.
JS_RequestInterface
({
funcName
:
"getRSAPubKey"
,
argument
:
JSON
.
stringify
({
keyLength
:
1024
})
}).
then
(
function
(
oData
)
{
console
.
log
(
oData
);
if
(
oData
.
responseMsg
.
data
)
{
that
.
pubKey
=
oData
.
responseMsg
.
data
;
callback
()
}
})
},
// 推送消息
cbIntegrationCallBack
(
oData
)
{
showCBInfo
(
JSON
.
stringify
(
oData
.
responseMsg
));
}
}
}
</
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