zhgdyunapp/static/monitor/player.html

195 lines
4.8 KiB
HTML
Raw Normal View History

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<!-- <script type="text/javascript" src="./uni.webview.js"></script> -->
<!-- <script src="./h5player.min.js"></script> -->
<script type="text/javascript" src="./h5player.min.js"></script>
<script type="text/javascript" src="./uni.webview.1.5.5.js"></script>
<style type="text/css">
.myplayer {
/* width: 100vw; */
/* height: 28vh; */
/* height: 100vh; */
/* min-height: 225px; */
/* border-radius: 2vh; */
overflow: hidden;
/* background: #000; */
}
body {
margin: 0;
}
</style>
</head>
<body>
<div id="play_window" class="myplayer"></div>
<script>
let fullScreen = false;
console.log('Initializing decoder...');
var myPlugin = new JSPlugin({
szId: 'play_window',
szBasePath: './',
iOSDecodePath: './playctrl1/'
})
// 事件回调绑定
myPlugin.JS_SetWindowControlCallback({
windowEventSelect: function(iWndIndex) {
//插件选中窗口回调
console.log("windowSelect callback: ", iWndIndex);
},
pluginErrorHandler: function(iWndIndex, iErrorCode, oError) {
//插件错误回调
console.log("pluginError callback: ", iWndIndex, iErrorCode, oError);
},
performanceLack: function(iWndIndex) {
//性能不足回调
console.log("performanceLack callback: ", iWndIndex);
},
StreamEnd: function(iWndIndex) {
//性能不足回调
console.log("recv StreamEnd: ", iWndIndex);
},
talkPluginErrorHandler: (iErrorCode, oErrorInfo) => { //对讲错误回调
console.log('recv talkPluginErrorHandler: ' + iErrorCode);
},
});
window.handleMessage = function(msg) {
console.log("接收到消息", msg);
// alert("接收到消息"+msg);
// document.getElementById('box').innerText = msg;
const data = JSON.parse(msg)
if (data.type === "start") {
talkStart(data.url)
} else {
talkStop()
}
}
// play()
// myPlugin.JS_FullScreenDisplay(true)
// myPlugin.JS_FullScreenSingle(0)
function play() {
// 视频流流
var playURL = GetQueryString("cameraUrl")
console.log('视频流地址:', playURL)
// 窗口下标
var curIndex = 0;
// 获取监控点唯一标识方便作为抓图存储的key
// var cameraIndexCode = GetQueryString("cameraIndexCode")
// 视频预览
myPlugin.JS_Play(playURL, {
playURL,
mode: 0 // 0 普通模式 / 1 高级模式
}, curIndex).then(() => {
console.info('JS_Play success ');
// 设置取流连接超时时间
let nTime = 300000
myPlugin.JS_SetConnectTimeOut(curIndex, nTime).then(
() => {
console.info('JS_SetConnectTimeOut success');
// do you want...
myPlugin.JS_OpenSound(curIndex).then(
() => {
console.info('JS_OpenSound success');
// do you want...
},
(err) => {
console.info('JS_OpenSound failed');
// do you want...
}
);
},
(err) => {
console.info('JS_SetConnectTimeOut failed', err);
// do you want...
}
);
}, (err) => {
console.info('JS_Play failed:', err);
// do you want...
});
myPlugin.JS_FullScreenDisplay(true)
// myPlugin.JS_FullScreenSingle(curIndex)
//开启声音
}
// 截图
function onScreenshot() {
console.log('点击截屏');
// 窗口下标
var curIndex = 0;
// 获取监控点唯一标识方便作为抓图存储的key
// var cameraIndexCode = GetQueryString("cameraIndexCode")
// 文件名称
var fileName = 'img';
// 文件类型
var fileType = 'JPEG';
//下载到本地
myPlugin.JS_CapturePicture(curIndex, fileName, fileType).then(
(res) => {
console.info('JS_CapturePicture success');
// do you want...
},
(err) => {
console.info('JS_CapturePicture failed', err);
// do you want...
}
);
}
//取url中的参数值
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]);
return null;
}
function talkStart(url) {
myPlugin.JS_SetConnectTimeOut(0, 1000)
console.log(url);
console.log(myPlugin);
myPlugin.JS_StartTalk(url).then(
() => {
console.log('talkStart success')
// alert('对讲连接成功')
webUni.postMessage({
data: {
msg: 'success'
}
});
},
e => {
console.error(e)
// alert('对讲连接失败' + e)
webUni.postMessage({
data: {
msg: 'error',
err: e
}
});
}
)
}
function talkStop() {
myPlugin.JS_StopTalk().then(
() => {
console.log('talkStop success')
},
e => {
console.error(e)
}
)
}
</script>
</body>
</html>