// 初始化插件
|
/* eslint-disable */
|
export function WebVideo(json) {
|
console.log(json, '参数')
|
this.g_iWndIndex = 0
|
this.szDeviceIdentify = ''
|
this.deviceport = json.deviceport ? json.deviceport : ''
|
this.rtspport = json.rtspport ? json.rtspport : ''
|
this.channels = []
|
this.ip = json.ip ? json.ip : ''
|
this.port = json.port ? json.port : ''
|
this.username = json.username ? json.username : ''
|
this.password = json.password ? json.password : ''
|
this.domId = json.domId ? json.domId : 'divPlugin'
|
this.init = function() {
|
var self = this
|
// 检查插件是否已经安装过
|
var iRet = WebVideoCtrl.I_CheckPluginInstall()
|
if (iRet === -1) {
|
alert('您还未安装过插件,双击开发包目录里的WebComponentsKit.exe安装!')
|
return
|
}
|
// 初始化插件参数及插入插件
|
WebVideoCtrl.I_InitPlugin('100%', '100%', {
|
bWndFull: true,
|
iPackageType: 2,
|
iWndowType: 1,
|
cbInitPluginComplete: function() {
|
WebVideoCtrl.I_InsertOBJECTPlugin(self.domId)
|
}
|
})
|
}
|
// 登录
|
this.clickLogin = function() {
|
var self = this
|
|
if ('' === self.ip || '' === self.port) {
|
return
|
}
|
|
self.szDeviceIdentify = self.ip + '_' + self.port
|
console.log(self.szDeviceIdentify, 'szDeviceIdentify', WebVideoCtrl)
|
const res = WebVideoCtrl.I_Login(
|
self.ip,
|
1,
|
self.port,
|
self.username,
|
self.password,
|
{
|
success: function(xmlDoc) {
|
console.log(xmlDoc, 'xmlDoc 登录成功!')
|
setTimeout(function() {
|
self.getChannelInfo()
|
self.getDevicePort()
|
}, 10)
|
setTimeout(function() {
|
self.clickStartRealPlay()
|
}, 500)
|
},
|
error: function(status, xmlDoc) {
|
console.log('登录失败!')
|
}
|
}
|
)
|
|
// 已经登陆
|
if (res === -1) {
|
console.log('已经登陆过了')
|
setTimeout(function() {
|
self.getChannelInfo()
|
self.getDevicePort()
|
}, 10)
|
setTimeout(function() {
|
self.clickStartRealPlay()
|
}, 500)
|
}
|
}
|
// 退出
|
this.clickLogout = function() {
|
var self = this
|
if (self.szDeviceIdentify == null) {
|
return
|
}
|
var iRet = WebVideoCtrl.I_Logout(self.szDeviceIdentify)
|
if (iRet === 0) {
|
self.getChannelInfo()
|
self.getDevicePort()
|
}
|
}
|
// 获取通道
|
this.getChannelInfo = function() {
|
var self = this
|
self.channels = []
|
if (null === self.szDeviceIdentify) {
|
return
|
}
|
// 模拟通道
|
WebVideoCtrl.I_GetAnalogChannelInfo(self.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)
|
}
|
// oSel.append("<option value='" + id + "' bZero='false'>" + name + "</option>");
|
self.channels.push({
|
id: id,
|
name: name
|
})
|
})
|
console.log('获取模拟通道成功!')
|
},
|
error: function(status, xmlDoc) {
|
// showOPInfo(szDeviceIdentify + " 获取模拟通道失败!", status, xmlDoc);
|
console.log('获取模拟通道失败!', status, xmlDoc)
|
}
|
})
|
}
|
// 获取端口
|
this.getDevicePort = function() {
|
var self = this
|
|
if (null === self.szDeviceIdentify) {
|
return
|
}
|
|
var oPort = WebVideoCtrl.I_GetDevicePort(self.szDeviceIdentify)
|
if (oPort != null) {
|
self.deviceport = oPort.iDevicePort
|
self.deviceport = oPort.iRtspPort
|
|
console.log('获取端口成功!', self.szDeviceIdentify)
|
} else {
|
console.log(' 获取端口失败!')
|
}
|
}
|
|
// 开始预览
|
this.clickStartRealPlay = function() {
|
var self = this
|
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(self.g_iWndIndex),
|
iChannelID = self.channels[0].value,
|
szInfo = ''
|
console.log(self, 'self')
|
if (null === self.szDeviceIdentify) {
|
return
|
}
|
console.log(
|
self.rtspport,
|
'self.rtspport',
|
iChannelID,
|
'iChannelID',
|
self.szDeviceIdentify
|
)
|
var startRealPlay = function() {
|
var res = WebVideoCtrl.I_StartRealPlay(self.szDeviceIdentify, {
|
iRtspPort: self.rtspport,
|
iStreamType: '1',
|
iChannelID: iChannelID,
|
bZeroChannel: false,
|
success: function() {
|
console.log('开始预览成功')
|
},
|
error: function(status, xmlDoc) {
|
if (403 === status) {
|
szInfo = '设备不支持Websocket取流!'
|
} else {
|
szInfo = '开始预览失败!'
|
}
|
console.log(szInfo, status, xmlDoc)
|
}
|
})
|
console.log(res, 'res---播放函数')
|
}
|
|
if (oWndInfo != null) {
|
// 已经在播放了,先停止
|
WebVideoCtrl.I_Stop({
|
success: function() {
|
startRealPlay()
|
}
|
})
|
} else {
|
startRealPlay()
|
}
|
}
|
// 停止预览
|
this.clickStopRealPlay = function() {
|
var self = this
|
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(self.g_iWndIndex)
|
if (oWndInfo != null) {
|
WebVideoCtrl.I_Stop({
|
success: function() {},
|
error: function() {}
|
})
|
}
|
}
|
}
|