<template>
  <div>
    <div id="monitorId1" class="plugin"></div>
  </div>
</template>

<script>


export default {
  data() {
    return {}
  },
  async mounted() {
    await this.$nextTick()
    const _this = this
    let g_iWndIndex = 0;
    $(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('monitorId1');
          // 检查插件是否最新
          if (-1 == WebVideoCtrl.I_CheckPluginVersion()) {
            alert("检测到新的插件版本");
            return;
          }
        }
      });


    });
// 登录
    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();
            setTimeout(()=>{

              clickStartRealPlay()
            },2000)
          }, 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));
            }
          });
        },
        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 =  1,
        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();
      }
    }

    setTimeout(()=>{
      clickLogin()
    },1000)
  },
  methods: {
  }
}
</script>
<style>
</style>
