import {ElMessage} from 'element-plus' // import { getCurrentInstance } from 'vue' // const { proxy } = getCurrentInstance() as any // 初始化控件 export function initPlugin(width: any, height: any, iWndowType: number, id: string, bWndFull: boolean, callback: any, cbDoubleClickWnd: any) { // 检查浏览器是否支持无插件 // if (!WebVideoCtrl.I_SupportNoPlugin()) { // ElMessage.warning("当前浏览器不支持无插件预览监控视频,已自动切换成插件模式,如果还未安装插件请安装") // // 检查插件是否已经安装 // // } const isInstall = WebVideoCtrl.I_CheckPluginInstall() if (isInstall == -1) { ElMessage.warning('您还未安装过插件,请先下载WebComponentsKit.exe双击安装!') // 后面推下载文件 return } // 初始化插件参数及插入插件 WebVideoCtrl.I_InitPlugin(width, height, { iPackageType: 2, szColorProperty: 'plugin-background:ffffff; sub-background:00000; sub-border:D0DAE4; sub-border-select:409EFF', bWndFull, // 是否支持单窗口双击全屏,默认支持 true:支持 false:不支持 iWndowType, bNoPlugin: true, cbDoubleClickWnd(iWndIndex, bFullScreen, event) { console.log(iWndIndex) cbDoubleClickWnd() }, cbEvent(iEventType, iParam1, iParam2) { if (iEventType == 2) { // 回放正常结束 console.log(`窗口${iParam1}回放结束!`) } else if (iEventType == -1) { console.log(`设备${iParam1}网络错误!`) } else if (iEventType == 3001) { } }, cbInitPluginComplete() { // window.m_pluginOBJECT = m_pluginOBJECT WebVideoCtrl.I_InsertOBJECTPlugin(`hkPlugin${id}`) if (callback !== null) { callback() } }, }) } // 登录设备 export function playBack(deviceData, szStartTime, szEndTime) { WebVideoCtrl.I_StartPlayback(`${deviceData.nvrIp}_80`, { iRtspPort: 554, iStreamType: 1, iChannelID: parseInt(deviceData.nvrChannel, 10), szStartTime, szEndTime, success() { console.log('开始回放成功!') }, error(oError: any) { console.log('开始回放失败!', oError.errorCode, oError.errorMsg) }, }) } // 登录设备 export function onlyLogin(szIP, szPort, szUsername, szPassword, g_iWndIndex, isNvr = false, szChannel = '') { if (szIP == '' || szPort == '') { return } const szDeviceIdentify = `${szIP}_${szPort}` WebVideoCtrl.I_Login(szIP, 1, szPort, szUsername, szPassword, { timeout: 3000, success(xmlDoc) { console.log(`${szDeviceIdentify} 登录成功!`) // preview(szIP, szPort, szUsername, szPassword, g_iWndIndex, isNvr, szChannel) }, error(oError) { if (status === 2001) { console.log(`${szDeviceIdentify} 已登录过!`) } else { ElMessage.warning(`${szDeviceIdentify} 登录失败!`) console.log(`${szDeviceIdentify} 登录失败!`, oError?.errorCode, oError?.errorMsg) } }, }) } // 登录设备 export function login(szIP, szPort, szUsername, szPassword, g_iWndIndex, isNvr = false, szChannel='') { if (szIP == '' || szPort == '') { return } const szDeviceIdentify = `${szIP}_${szPort}` WebVideoCtrl.I_Login(szIP, 1, szPort, szUsername, szPassword, { timeout: 3000, success(xmlDoc) { console.log(`${szDeviceIdentify} 登录成功!`) preview(szIP, szPort, szUsername, szPassword, g_iWndIndex, isNvr, szChannel) }, error(oError) { if (status === 2001) { console.log(`${szDeviceIdentify} 已登录过!`) } else { ElMessage.warning(`${szDeviceIdentify} 登录失败!`) console.log(`${szDeviceIdentify} 登录失败!`, oError.errorCode, oError.errorMsg) } }, }) } export function loginForCallback(szIP, szPort, szUsername, szPassword, g_iWndIndex, isNvr = false, szChannel = '', callback) { if (szIP == '' || szPort == '') { return } const szDeviceIdentify = `${szIP}_${szPort}` WebVideoCtrl.I_Login(szIP, 1, szPort, szUsername, szPassword, { timeout: 3000, success(xmlDoc) { console.log(`${szDeviceIdentify} 登录成功!`) if (callback !== null) { callback() } }, error(oError) { if (status === 2001) { console.log(`${szDeviceIdentify} 已登录过!`) } else { ElMessage.warning(`${szDeviceIdentify} 登录失败!`) console.log(`${szDeviceIdentify} 登录失败!`, oError.errorCode, oError.errorMsg) } }, }) } // 预览 export function preview(szIP, szPort, szUsername, szPassword, g_iWndIndex, isNvr = false, szChannel='') { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex) var szDeviceIdentify = `${szIP}_80` var iRtspPort = parseInt('554', 10) var iChannelID = parseInt('1', 10) if (isNvr) { iChannelID = parseInt(szChannel, 10) } var bZeroChannel = false var iStreamType = parseInt('1', 10) // 主码流 if (szDeviceIdentify == null) { return } var startRealPlay = function () { WebVideoCtrl.I_StartRealPlay(szDeviceIdentify, { iStreamType, iChannelID, bZeroChannel, iRtspPort, iWndIndex: Number(g_iWndIndex), success() { console.log(`${szDeviceIdentify} 开始预览成功`) // setTimeout(() => { // proxy.closeLoading() // }, 200) }, error(oError: any) { ElMessage.warning(`${szDeviceIdentify} 视频预览失败!`) console.log(`${szDeviceIdentify} 开始预览失败!`, oError.errorCode, oError.errorMsg) }, }) } startRealPlay() // if (oWndInfo != null) { // 已经在播放了,先停止 // WebVideoCtrl.I_Stop({ // iWndIndex: Number(g_iWndIndex), // success() { // startRealPlay() // }, // error(oError: any) { // console.log(oError) // startRealPlay() // }, // }) // } // else { // startRealPlay() // } } // 登出设备 export function logout(ip: any) { console.log('海康退出') WebVideoCtrl.I_Logout(ip) } export function stop(index: number) { WebVideoCtrl.I_Stop({ iWndIndex: index, success() { }, error(oError: any) { }, }) }