You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

189 lines
5.4 KiB
JavaScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

$(function () {
// 检查插件是否已经安装过
var iRet = window.WebVideoCtrl.I_CheckPluginInstall();
if (-1 == iRet) {
alert("未安装插件");
return;
}
// 初始化插件参数及插入插件
WebVideoCtrl.I_InitPlugin(500, 300, {
bWndFull: true, //是否支持单窗口双击全屏,默认支持 true:支持 false:不支持
iPackageType: 2,
iWndowType: 1,
bNoPlugin: true,
cbSelWnd: function (xmlDoc) {
console.log(xmlDoc)
},
cbDoubleClickWnd: function (iWndIndex, bFullScreen) {
console.log(iWndIndex, bFullScreen)
},
cbEvent: function (iEventType, iParam1, iParam2) {
},
cbRemoteConfig: function () {
console.log("关闭远程配置库!");
},
cbInitPluginComplete: function () {
WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin");
// 检查插件是否最新
if (-1 == WebVideoCtrl.I_CheckPluginVersion()) {
alert("检测到新的插件版本");
return;
}
}
});
});
var g_iWndIndex = 0;
// 登录
function clickLogin() {
var szIP = '192.168.2.64',
szPort = '80',
szUsername = 'admin',
szPassword = 'haiwei@2024';
if ("" == szIP || "" == szPort) {
return;
}
var iRet = WebVideoCtrl.I_Login(szIP, 1, szPort, szUsername, szPassword, {
success: function (xmlDoc) {
setTimeout(function () {
getChannelInfo();
getDevicePort();
}, 10);
},
error: function (status, xmlDoc) {
}
});
if (-1 == iRet) {
console.log(" 已登录过!");
}
}
// 获取端口
function getDevicePort() {
var szDeviceIdentify = '192.168.2.64';
var oPort = WebVideoCtrl.I_GetDevicePort(szDeviceIdentify);
if (oPort != null) {
console.log(szDeviceIdentify + " 获取端口成功!");
} else {
console.log(szDeviceIdentify + " 获取端口失败!");
}
}
function getChannelInfo() {
var szDeviceIdentify = '192.168.2.64'
// 模拟通道
WebVideoCtrl.I_GetAnalogChannelInfo(szDeviceIdentify, {
async: false,
success: function (xmlDoc) {
var oChannels = $(xmlDoc).find("VideoInputChannel");
$.each(oChannels, function (i) {
var id = $(this).find("id").eq(0).text(),
name = $(this).find("name").eq(0).text();
if ("" == name) {
name = "Camera " + (i < 9 ? "0" + (i + 1) : (i + 1));
}
});
clickStartRealPlay()
},
error: function (status, xmlDoc) {
}
});
// 数字通道
WebVideoCtrl.I_GetDigitalChannelInfo(szDeviceIdentify, {
async: false,
success: function (xmlDoc) {
var oChannels = $(xmlDoc).find("InputProxyChannelStatus");
$.each(oChannels, function (i) {
var id = $(this).find("id").eq(0).text(),
name = $(this).find("name").eq(0).text(),
online = $(this).find("online").eq(0).text();
if ("false" == online) {// 过滤禁用的数字通道
return true;
}
if ("" == name) {
name = "IPCamera " + (i < 9 ? "0" + (i + 1) : (i + 1));
}
});
},
error: function (status, xmlDoc) {
}
});
// 零通道
WebVideoCtrl.I_GetZeroChannelInfo(szDeviceIdentify, {
async: false,
success: function (xmlDoc) {
var oChannels = $(xmlDoc).find("ZeroVideoChannel");
$.each(oChannels, function (i) {
var id = $(this).find("id").eq(0).text(),
name = $(this).find("name").eq(0).text();
if ("" == name) {
name = "Zero Channel " + (i < 9 ? "0" + (i + 1) : (i + 1));
}
if ("true" == $(this).find("enabled").eq(0).text()) {// 过滤禁用的零通道
}
});
},
error: function (status, xmlDoc) {
}
});
}
// 开始预览
function clickStartRealPlay(iStreamType) {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szDeviceIdentify = '192.168.2.64',
iRtspPort = 554,
iChannelID = 2,
bZeroChannel = false,
szInfo = "";
iStreamType = 1;
var startRealPlay = function () {
WebVideoCtrl.I_StartRealPlay(szDeviceIdentify, {
iRtspPort: iRtspPort,
iStreamType: iStreamType,
iChannelID: iChannelID,
bZeroChannel: bZeroChannel,
success: function () {
szInfo = "开始预览成功!";
console.log(szDeviceIdentify + " " + szInfo);
},
error: function (status, xmlDoc) {
if (403 === status) {
szInfo = "设备不支持Websocket取流";
} else {
szInfo = "开始预览失败!";
}
console.log(szDeviceIdentify + " " + szInfo);
}
});
};
if (oWndInfo != null) {// 已经在播放了,先停止
WebVideoCtrl.I_Stop({
success: function () {
startRealPlay();
}
});
} else {
startRealPlay();
}
}