videoPlay.vue 3.66 KB
<template>
  <div class="ocx-box" id="ocx-box" v-show="isShow">
    <object id="VionVideo" classid="clsid:93F960BB-5AF9-402B-A3DF-06112F14DC02" codebase="VionPlatformVideo.ocx" width="100%"
      height="100%">
      <!-- <param name="_Version" value="65536">
		        <param name="_ExtentX" value="2646">
		        <param name="_ExtentY" value="1323">
		        <param name="_StockProps" value="0"> -->
    </object>
  </div>
</template>
<script>
  import {
    mapState
  } from 'vuex'
  export default {
    data() {
      return {
        urlFlag:false,
        isShow:true
      };
    },
    props: ['playurl', 'type'],
    methods: {
      videoPlay: function () {
        this.urlFlag = false
        if (!this.playurl.sip_serv_ip) {
          let url = this.playurl.rtsp_url
          let ocxPlayRes = document.getElementById('VionVideo').StartPlay(url, 0);
          console.log('video Ocx播放rtsp流返回值:', ocxPlayRes);
          if (ocxPlayRes != 0) {
            alert('播放失败!');
          }
        } else {
          let OcxResponse = document.getElementById('VionVideo').StartPlaySip(this.playurl.sip_serv_id, this.playurl.sip_serv_ip,
            this.playurl.sip_serv_port, this.playurl.sip_unid, this.playurl.sip_password, this.playurl.devId, 0)
          console.log('video Ocx播放sip流返回值:', OcxResponse);
          if (OcxResponse != 0 && OcxResponse != 200) {
            alert('播放失败!');
          }
        }
      },
      downOcx: function () {
        if (this.fileUrl !== '' && !this.installOcx) {
          location.href = this.fileUrl;
        }
      },
      installOcxInfo: function () {
        this.$confirm('为了正常使用,是否安装OCX控件?', '友情提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          this.installOcx = false;
          this.downOcx();
        }).catch(() => {
          this.installOcxInfo();
        });
      },
      initocx() {
         VionVideo.Init(0, 'Null', 4);
      },
      downloadOCx() {
        // if (navigator.userAgent.indexOf('Trident') > -1) {
        //   this.axios.get(IP + "/api/v1/device/dlfile", {
        //       params: {
        //         file_type: "video_ocx"
        //       }
        //     })
        //     .then(response => {
        //       location.href = response.data.file_url;
        //     });
        // } else {
        //   this.$message.error("视频控件加载失败请用IE10及以上版本打开!");
        // }
      },
      checkIE() {
        var agent = navigator.userAgent.toLowerCase();
        if (/(msie\s|trident.*rv:)([\w.]+)/.test(agent) && document.documentMode < 10) {
          this.$message.error("IE 版本过低请升级到IE10级以上版本!");
        }
      }
    },
    created() {
      // this.checkIE();
    },
    computed: {
      ...mapState(['ocxstate'])
    },
    mounted() {
      // VionVideo.Init(0, 'Null', 4);
      // try {
      //   if (document.getElementById("VionVideo").GetVersion()) {
      //   }
      // } catch (error) {
      //   this.downloadOCx();
      // }
    },
    watch: {
      ocxstate(val) {
        try {
          if(val == 0){
            this.isShow = false
          } else {
            this.isShow = true
            document.getElementById("VionVideo").StartPlay(0);
          }
        } catch (error) {
          console.log(error)
        }

      },
    },
    beforeDestroy: function () {
      // if (this.videoplayer.techName_ == "Flash" && this.videoplayer.pause) {
      //   this.videoplayer.pause();
      // }
    }
  };

</script>

<style lang="stylus" scoped>
.ocx-box{
  height 100%
  width 100%
}
</style>