国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue2實(shí)現(xiàn)??低暩鶕?jù)海康插件進(jìn)行監(jiān)控實(shí)時(shí)預(yù)覽和回放功能,全套代碼,開箱即用。

這篇具有很好參考價(jià)值的文章主要介紹了vue2實(shí)現(xiàn)??低暩鶕?jù)海康插件進(jìn)行監(jiān)控實(shí)時(shí)預(yù)覽和回放功能,全套代碼,開箱即用。。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


?這是一套拿到手就能直接用的根據(jù)??堤峁┑臄z像機(jī)節(jié)點(diǎn)實(shí)時(shí)預(yù)覽和回放的全步驟代碼,開箱即用。

先點(diǎn)贊后觀看,養(yǎng)成好習(xí)慣。

前言

?我的是基于vue2寫的,vue3可以看我下一篇文章。

?點(diǎn)擊跳轉(zhuǎn)至vue3關(guān)于海康視頻開發(fā)文章。

很多人在開發(fā)vue項(xiàng)目的時(shí)候,不知道怎么去開發(fā)視頻實(shí)時(shí)預(yù)覽和回放功能,然后一直查文檔,再去看別人寫的項(xiàng)目,就是無從下手。這篇文章是我剛開始接觸到這個(gè)項(xiàng)目的時(shí)候從頭到尾寫下來的,功能已經(jīng)實(shí)現(xiàn)希望有用。


一、插件下載與安裝

首先去海康開放平臺(tái)下載??堤峁┑腄emo,這里面有項(xiàng)目需要用到的播放器插件和js文件。

點(diǎn)擊進(jìn)入??甸_放平臺(tái)

我使用的是V1.6.1版本。

然后下載這一個(gè),首次下載需要登錄,沒有的直接手機(jī)號(hào)注冊(cè)一個(gè)就行了。

vue2實(shí)現(xiàn)??低暩鶕?jù)??挡寮M(jìn)行監(jiān)控實(shí)時(shí)預(yù)覽和回放功能,全套代碼,開箱即用。

然后安裝視頻播放插件,如下圖。?

vue2實(shí)現(xiàn)??低暩鶕?jù)??挡寮M(jìn)行監(jiān)控實(shí)時(shí)預(yù)覽和回放功能,全套代碼,開箱即用。

二、使用步驟

?1.引入js

?在vue項(xiàng)目中的public目錄下新建文件夾,把剛才下載好的js復(fù)制到這個(gè)文件夾里面,然后再在public目錄下的index.html文件里面引入sj文件。

vue2實(shí)現(xiàn)??低暩鶕?jù)??挡寮M(jìn)行監(jiān)控實(shí)時(shí)預(yù)覽和回放功能,全套代碼,開箱即用。?vue2實(shí)現(xiàn)??低暩鶕?jù)??挡寮M(jìn)行監(jiān)控實(shí)時(shí)預(yù)覽和回放功能,全套代碼,開箱即用。

2.代碼部分

代碼如下(示例):

這里是template部分,只給一個(gè)盒子,然后給個(gè)寬和高就行了,插件會(huì)自適應(yīng)盒子大小和位置的。

ref對(duì)應(yīng)的名字在初始化插件的時(shí)候會(huì)用到。

    <div class="videoMain" ref="playWndBox">
        <div
          id="playWnd"
          class="playWnd"
          :style="{
            height: playWndHeight + 'px',
            width: playWndWidth + 'px',
          }"
        ></div>
      </div>

這是data里面的數(shù)據(jù),可根據(jù)自己需求修改。

 data() {
        return {
            // 視頻盒子的高度
            playWndHeight: "",
            // 視頻盒子的寬度
            playWndWidth: "",
            oWebControl: null,
            initCount: 0,
            pubKey: "",
            cameraIndexCode: "",  // 這里面是監(jiān)控點(diǎn)編號(hào)
            objData: {
                appkey: "",        //??灯脚_(tái)提供的appkey
                ip: "",            //平臺(tái)地址
                secret: "",        //??灯脚_(tái)提供的secret
                port: 443,
                playMode: 0,         // 0 預(yù)覽 1回放
                layout: "1x1",     //頁面展示的模塊數(shù)【16】
                
            },
        }
    },

?這是monted里面的代碼,組件加載后先獲取視頻盒子的高度和寬度

   // 首次加載時(shí)的到父容器的高度
    this.playWndHeight = this.$refs.playWndBox.clientHeight;
    // 首次加載時(shí)的到父容器的寬度
    this.playWndWidth = this.$refs.playWndBox.clientWidth;

    // 初始化播放器插件
    this.$nextTick(() => {
      this.initPlugin();
    });

    // 監(jiān)聽scroll事件,使插件窗口尺寸跟隨DIV窗口變化
    window.addEventListener("scroll", () => {
      if (this.oWebControl != null) {
        this.oWebControl.JS_Resize(
          this.$refs.playWndBox.clientWidth,
          this.$refs.playWndBox.clientHeight
        );
        this.setWndCover();
      }
    });

    // 監(jiān)聽resize事件,使插件窗口尺寸跟隨DIV窗口變化
    window.addEventListener("resize", (e) => {
      if (this.oWebControl != null) {
        this.oWebControl.JS_Resize(
          this.$refs.playWndBox.clientWidth,
          this.$refs.playWndBox.clientHeight
        );
        this.setWndCover();
      }
    });

?組件銷毀的時(shí)候要調(diào)用插件銷毀方法,要不然頁面會(huì)有插件殘留。

  destroyed () {
    if (this.oWebControl != null) {
      // 先讓窗口隱藏,規(guī)避可能的插件窗口滯后于瀏覽器消失問題
      this.oWebControl.JS_HideWnd();
      // 銷毀當(dāng)前播放的視頻
      this.oWebControl.JS_RequestInterface({ funcName: "destroyWnd" });
      // 斷開與插件服務(wù)連接
      this.oWebControl.JS_Disconnect();
    }
  },

?下面是methods方法里面的函數(shù),自己定義點(diǎn)擊事件函數(shù),把監(jiān)控點(diǎn)編號(hào)發(fā)送到previewVideo(data)函數(shù)里面。前提是得先安裝播放插件!?。?/span>

       // 創(chuàng)建播放實(shí)例
        initPlugin() {
            let that = this;
            this.oWebControl = null;
            that.oWebControl = new WebControl({
                szPluginContainer: "playWnd", // 指定容器id
                iServicePortStart: 15900, // 指定起止端口號(hào),建議使用該值
                iServicePortEnd: 15909,
                szClassId: "23BF3B0A-2C56-4D97-9C03-0CB103AA8F11", // 用于IE10使用ActiveX的clsid
                cbConnectSuccess: () => {
                    // 創(chuàng)建WebControl實(shí)例成功
                    that.oWebControl
                        .JS_StartService("window", {
                            // WebControl實(shí)例創(chuàng)建成功后需要啟動(dòng)服務(wù)
                            // 值"./VideoPluginConnect.dll"寫死
                            dllPath: "./VideoPluginConnect.dll",
                        })
                        .then(
                            function () {
                                // 設(shè)置消息回調(diào)
                                that.oWebControl.JS_SetWindowControlCallback({
                                    cbIntegrationCallBack: that.cbIntegrationCallBack,
                                });
                                //JS_CreateWnd創(chuàng)建視頻播放窗口,寬高可設(shè)定
                                that.oWebControl
                                    .JS_CreateWnd("playWnd", 2040, 945, { bEmbed: true })
                                  //注:2040,945這是我本人項(xiàng)目視頻盒子的大小,你們要根據(jù)自己視頻盒子的大小進(jìn)行修改,不然初始化插件的時(shí)候會(huì)有空白閃爍。
                                    .then(function () {
                                        // 創(chuàng)建播放實(shí)例成功后初始化
                                        that.init();
                                    });
                            },
                            function () {
                                // 啟動(dòng)插件服務(wù)失敗
                            }
                        );
                },
                // 創(chuàng)建WebControl實(shí)例失敗
                cbConnectError: function () {
                    that.oWebControl = null;
                    // alert('插件未啟動(dòng),正在嘗試啟動(dòng),請(qǐng)稍候...')
                    // that.$message.warning("插件未啟動(dòng),正在嘗試啟動(dòng),請(qǐng)稍候...");
                    // 程序未啟動(dòng)時(shí)執(zhí)行error函數(shù),采用wakeup來啟動(dòng)程序
                    window.WebControl.JS_WakeUp("VideoWebPlugin://");
                    that.initCount++;
                    if (that.initCount < 3) {
                        setTimeout(function () {
                            that.initPlugin();
                        }, 3000);
                    } else {
                        // that.messageBox = true
                        // alert('插件啟動(dòng)失敗,請(qǐng)安裝插件并重新啟動(dòng)!')
                        // that.downloadHikVideo()
                        // setTimeout(function () {
                        //     that.messageBox = false
                        // }, 5000)
                        // setTimeout(function () {
                        //     alert('插件啟動(dòng)失敗,請(qǐng)檢查插件是否安裝!')
                        //     that.$message({
                        //         message: '插件啟動(dòng)失敗,請(qǐng)檢查插件是否安裝! \n 插件下載地址:https://www.baidu.com',
                        //         type: 'warning'
                        //     });
                        // }, 5000)
                    }
                },
                cbConnectClose: () => {
                    // 異常斷開:bNormalClose = false
                    // JS_Disconnect正常斷開:bNormalClose = true
                    // console.log("cbConnectClose");
                    that.oWebControl = null;
                },
            });
        },
        // 初始化
        init(callback) {
            let that = this;
            that.getPubKey(() => {
                let appkey = that.objData.appkey;                   //綜合安防管理平臺(tái)提供的appkey,必填
                let secret = that.setEncrypt(that.objData.secret); //綜合安防管理平臺(tái)提供的secret,必填
                let ip = that.objData.ip;                           //綜合安防管理平臺(tái)IP地址,必填
                let playMode = that.objData.playMode;               //初始播放模式:0-預(yù)覽,1-回放
                let port = that.objData.port;                       //綜合安防管理平臺(tái)端口,若啟用HTTPS協(xié)議,默認(rèn)443
                let snapDir = "D:\\SnapDir";                        //抓圖存儲(chǔ)路徑
                let videoDir = "D:\\VideoDir";                       //緊急錄像或錄像剪輯存儲(chǔ)路徑
                let layout = that.objData.layout;                   //playMode指定模式的布局
                let enableHTTPS = 1;                                //是否啟用HTTPS協(xié)議與綜合安防管理平臺(tái)交互,這里總是填1
                let encryptedFields = "secret";                     //加密字段,默認(rèn)加密領(lǐng)域?yàn)閟ecret
                let showToolbar = 1;                                //是否顯示工具欄,0-不顯示,非0-顯示
                let showSmart = 1;                                  //是否顯示智能信息(如配置移動(dòng)偵測(cè)后畫面上的線框),0-不顯示,非0-顯示
                let buttonIDs = "0,16,256,257,258,259,260,512,513,514,515,516,517,768,769"; //自定義工具條按鈕
                // var toolBarButtonIDs = "2049,2304" // 工具欄上自定義按鈕
                that.oWebControl
                    .JS_RequestInterface({
                        funcName: "init",
                        argument: JSON.stringify({
                            appkey: appkey,                 //API網(wǎng)關(guān)提供的appkey
                            secret: secret,                 //API網(wǎng)關(guān)提供的secret
                            ip: ip,                         //API網(wǎng)關(guān)IP地址
                            playMode: playMode,             //播放模式(決定顯示預(yù)覽還是回放界面)
                            port: port,                     //端口
                            snapDir: snapDir,               //抓圖存儲(chǔ)路徑
                            videoDir: videoDir,             //緊急錄像或錄像剪輯存儲(chǔ)路徑
                            layout: layout,                 //布局
                            enableHTTPS: enableHTTPS,       //是否啟用HTTPS協(xié)議
                            encryptedFields: encryptedFields, //加密字段
                            showToolbar: showToolbar,       //是否顯示工具欄
                            showSmart: showSmart,           //是否顯示智能信息
                            buttonIDs,                      //自定義工具條按鈕
                        }),
                    })
                    .then(function (oData) {
                        that.oWebControl.JS_Resize(that.playWndWidth, that.playWndHeight); // 初始化后resize一次,規(guī)避firefox下首次顯示窗口后插件窗口未與DIV窗口重合問題
                        if (callback) {
                            callback();
                        }
                        // 隱藏
                        // that.oWebControl.JS_HideWnd()
                    });
            });
        },
        // 獲取公鑰
        getPubKey(callback) {
            let that = this;
            this.oWebControl
                .JS_RequestInterface({
                    funcName: "getRSAPubKey",
                    argument: JSON.stringify({
                        keyLength: 1024,
                    }),
                })
                .then(function (oData) {
                    if (oData.responseMsg.data) {
                        that.pubKey = oData.responseMsg.data;
                        callback();
                    }
                });
        },
        // RSA 加密
        setEncrypt(value) {
            let that = this;
            let encrypt = new window.JSEncrypt();
            encrypt.setPublicKey(that.pubKey);
            return encrypt.encrypt(value);
        },
        // 回調(diào)的消息
        cbIntegrationCallBack(oData) {
            let { responseMsg: type } = oData;
            if (type === "error") {
            } else {
            }
        },
        // 視頻預(yù)覽功能
        previewVideo(data) {
            let that = this;
            let cameraIndexCode = data;         // 獲取輸入的監(jiān)控點(diǎn)編號(hào)值,必填
            let streamMode = 0;              // 主子碼流標(biāo)識(shí):0-主碼流,1-子碼流
            let transMode = 0;              // 傳輸協(xié)議:0-UDP,1-TCP
            let gpuMode = 0;                // 是否啟用GPU硬解,0-不啟用,1-啟用
            let wndId = -1;                 // 播放窗口序號(hào)(在2x2以上布局下可指定播放窗口)
            // console.log(cameraIndexCode, "-------cameraIndexCode-");

            that.oWebControl.JS_RequestInterface({
                funcName: "startPreview",
                argument: JSON.stringify({
                    cameraIndexCode: cameraIndexCode.trim(), // 監(jiān)控點(diǎn)編號(hào)
                    streamMode: streamMode,                 // 主子碼流標(biāo)識(shí)
                    transMode: transMode,                   // 傳輸協(xié)議
                    gpuMode: gpuMode,                       // 是否開啟GPU硬解
                    wndId: wndId,                           // 可指定播放窗口
                }),
            });
        },
        // 停止全部預(yù)覽
        stopAllPreview() {
            this.oWebControl.JS_RequestInterface({
                funcName: "stopAllPreview",
            });
        },
        // 格式化時(shí)間
        dateFormat(oDate, fmt) {
            let o = {
                "M+": oDate.getMonth() + 1, //月份
                "d+": oDate.getDate(), //日
                "h+": oDate.getHours(), //小時(shí)
                "m+": oDate.getMinutes(), //分
                "s+": oDate.getSeconds(), //秒
                "q+": Math.floor((oDate.getMonth() + 3) / 3), //季度
                S: oDate.getMilliseconds(), //毫秒
            };
            if (/(y+)/.test(fmt)) {
                fmt = fmt.replace(
                    RegExp.$1,
                    (oDate.getFullYear() + "").substr(4 - RegExp.$1.length)
                );
            }
            for (let k in o) {
                if (new RegExp("(" + k + ")").test(fmt)) {
                    fmt = fmt.replace(
                        RegExp.$1,
                        RegExp.$1.length == 1
                            ? o[k]
                            : ("00" + o[k]).substr(("" + o[k]).length)
                    );
                }
            }
            return fmt;
        },

        // 設(shè)置窗口裁剪,當(dāng)因滾動(dòng)條滾動(dòng)導(dǎo)致窗口需要被遮住的情況下需要JS_CuttingPartWindow部分窗口
        setWndCover() {
            var iWidth = $(window).width();
            var iHeight = $(window).height();
            var oDivRect = $("#playWnd").get(0).getBoundingClientRect();

            var iCoverLeft = (oDivRect.left < 0) ? Math.abs(oDivRect.left) : 0;
            var iCoverTop = (oDivRect.top < 0) ? Math.abs(oDivRect.top) : 0;
            var iCoverRight = (oDivRect.right - iWidth > 0) ? Math.round(oDivRect.right - iWidth) : 0;
            var iCoverBottom = (oDivRect.bottom - iHeight > 0) ? Math.round(oDivRect.bottom - iHeight) : 0;

            iCoverLeft = (iCoverLeft > 2041) ? 2041 : iCoverLeft;
            iCoverTop = (iCoverTop > 945) ? 945 : iCoverTop;
            iCoverRight = (iCoverRight > 2041) ? 2041 : iCoverRight;
            iCoverBottom = (iCoverBottom > 945) ? 945 : iCoverBottom;

            this.oWebControl.JS_RepairPartWindow(0, 0, 2041, 946);  // 多1個(gè)像素點(diǎn)防止還原后邊界缺失一個(gè)像素條
            if (iCoverLeft != 0) {
                this.oWebControl.JS_CuttingPartWindow(0, 0, iCoverLeft, 946);
            }
            if (iCoverTop != 0) {
                this.oWebControl.JS_CuttingPartWindow(0, 0, 2041, iCoverTop);  // 多剪掉一個(gè)像素條,防止出現(xiàn)剪掉一部分窗口后出現(xiàn)一個(gè)像素條
            }
            if (iCoverRight != 0) {
                this.oWebControl.JS_CuttingPartWindow(2041 - iCoverRight, 0, iCoverRight, 946);
            }
            if (iCoverBottom != 0) {
                this.oWebControl.JS_CuttingPartWindow(0, 946 - iCoverBottom, 2041, iCoverBottom);
            }
        },

后期如果需要對(duì)監(jiān)控點(diǎn)位進(jìn)行多窗口預(yù)覽,多窗口預(yù)覽實(shí)現(xiàn)原理是先定義要預(yù)覽的窗口數(shù)量,然后把要調(diào)用的窗口數(shù)據(jù)按照??档母袷竭M(jìn)行存放到數(shù)組里面,在窗口數(shù)量改變之后再統(tǒng)一調(diào)用,下面是我簡(jiǎn)單調(diào)用的不是很牛的例子。

  // 對(duì)多點(diǎn)位監(jiān)控監(jiān)控進(jìn)行查看
    lookPresetVideoHandler(presetDataArray) {
    //這里對(duì)要查看的監(jiān)控點(diǎn)位按照??档母袷竭M(jìn)行封裝
    //presetDataArray是我自己監(jiān)控的cameraIndexCode存放的數(shù)組,可按照自己的需求進(jìn)行命名
      presetDataArray.forEach((item, index) => {
        let NowObj = {
          cameraIndexCode: item,
          ezvizDirect: 0,
          gpuMode: 0,
          streamMode: 1,
          transMode: 1,
          wndId: index + 1,
        };
    //在data里面創(chuàng)建一個(gè)videoList的數(shù)組
        this.videoList.push(NowObj);
      });

      let VideoListLength = presetDataArray.length;
    //利用switch 進(jìn)行判斷窗口的數(shù)量然后來調(diào)用初始化窗口的函數(shù)
      switch (true) {
        case VideoListLength == 1:
          this.objData.layout = "1x1";
          this.initLayout(this.objData.layout);
          break;
        case VideoListLength == 2:
          this.objData.layout = "1x2";
          this.initLayout(this.objData.layout);
          break;
        case VideoListLength == 3:
          this.objData.layout = "1+2";
          this.initLayout(this.objData.layout);
          break;
        case VideoListLength == 4:
          this.objData.layout = "2x2";
          this.initLayout(this.objData.layout);
          break;
        case VideoListLength == 5:
          this.objData.layout = "1+5";
          this.initLayout(this.objData.layout);
          break;
        case VideoListLength == 6:
          this.objData.layout = "1+5";
          this.initLayout(this.objData.layout);
          break;
        case VideoListLength == 7:
          this.objData.layout = "3+4";
          this.initLayout(this.objData.layout);
          break;
        case VideoListLength == 8:
          this.objData.layout = "1+7";
          this.initLayout(this.objData.layout);
          break;
        case VideoListLength == 9:
          this.objData.layout = "3x3";
          this.initLayout(this.objData.layout);
          break;
        case VideoListLength == 10:
          this.objData.layout = "1+9";
          this.initLayout(this.objData.layout);
          break;
        case VideoListLength == 11:
          this.objData.layout = "3x4";
          this.initLayout(this.objData.layout);
          break;
        case VideoListLength == 12:
          this.objData.layout = "3x4";
          this.initLayout(this.objData.layout);
          break;
        case VideoListLength == 13:
          this.objData.layout = "1+12";
          this.initLayout(this.objData.layout);
          break;
        case VideoListLength == 14:
          this.objData.layout = "1+1+12";
          this.initLayout(this.objData.layout);
          break;
      }
    //這里直接調(diào)用lookVideoListHandler這個(gè)函數(shù)來進(jìn)行多窗口預(yù)覽
      this.lookVideoListHandler(this.videoList);
    },
    //初始化播放窗口
    initLayout(data) {
      let that = this;
      that.oWebControl.JS_RequestInterface({
        funcName: "setLayout",
        argument: JSON.stringify({ layout: data }),
      });
    },
    //點(diǎn)擊查看監(jiān)控列表監(jiān)控
    lookVideoListHandler(data) {
      let that = this;
      that.oWebControl.JS_RequestInterface({
        funcName: "startMultiPreviewByCameraIndexCode",
        argument: JSON.stringify({ list: data }),
      });
        //回調(diào)函數(shù)
      // .then(function () {
      //   that.oWebControl.JS_SetWindowControlCallback({
      //     cbIntegrationCallBack: function (oData) {
      //       // let responseMsg = JSON.stringify(oData)
      //       that.ooooo.push(oData.responseMsg.msg.cameraIndexCode)
      //     }
      //   });
      //   console.log(that.ooooo);

      // });
    },

?下面是視頻回放功能

       //把視頻預(yù)覽中的playMode修改成1,插件就會(huì)自動(dòng)調(diào)用回放功能
           //     playMode: 1, // 0 預(yù)覽 1回放
            //然后點(diǎn)擊事件調(diào)用 backVideo(VideoIndex)這個(gè)函數(shù),可以實(shí)現(xiàn)預(yù)覽功能


 // 視頻回放
        backVideo(VideoIndex) {
//我這是查詢?nèi)烨暗臄?shù)據(jù),可以根據(jù)直接需求自行修改。
//邏輯可能寫的比較垃圾,我這是寫死的,對(duì)著開發(fā)文檔根據(jù)自己需求修改
            let cameraIndexCode = VideoIndex;
            let months = new Date().getMonth() + 1
            let end = new Date().getFullYear() + '/' + months + '/' + new Date().getDate() + ' 23:59:59'
            let endT = String(parseInt(new Date(end).getTime() / 1000));
            let star = String(parseInt(new Date(end).getTime() / 1000 - 3 * 24 * 60 * 60))
            this.oWebControl.JS_RequestInterface({
                funcName: "startPlayback",
                argument: JSON.stringify({
                    cameraIndexCode: cameraIndexCode.trim(),    // 監(jiān)控點(diǎn)編號(hào)
                    startTimeStamp: star,                       // 錄像查詢開始時(shí)間戳,單位:秒
                    endTimeStamp: endT,                         // 錄像查詢結(jié)束時(shí)間戳,單位:秒
                    recordLocation: 0,                          // 錄像存儲(chǔ)類型 0-中心存儲(chǔ) 1-設(shè)備存儲(chǔ)
                    transMode: 0,                               // 傳輸協(xié)議 ,0-UDP 1-TCP
                    gpuMode: 0,                                 // 是否開啟 GPU 硬解,0-不開啟 1-開啟
                    wndId: -1                                   //可指定播放窗口
                })
            });
        },

下面附加上我Gitee的連接

HikDemo:直接點(diǎn)擊進(jìn)入這個(gè)地址,可以拿下來直接使用,里面為可以直接運(yùn)行的demo。https://gitee.com/yyyyong/hik.git

?既然看到最后了,如果感覺對(duì)你有幫助的話,麻煩給點(diǎn)個(gè)贊。


總結(jié)

??甸_發(fā)平臺(tái)只提供了原生JS的語法,這里是vue2的語法,有不懂的可以私信留言。文章來源地址http://www.zghlxwxcb.cn/news/detail-414186.html

到了這里,關(guān)于vue2實(shí)現(xiàn)??低暩鶕?jù)海康插件進(jìn)行監(jiān)控實(shí)時(shí)預(yù)覽和回放功能,全套代碼,開箱即用。的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 海康威視WebSDK_V3.3.0 集成vue2項(xiàng)目避坑+解決方案

    ??低昗ebSDK_V3.3.0 集成vue2項(xiàng)目避坑+解決方案

    最近新需求項(xiàng)目集成WebSDK_V3.3.0的視頻插件,開發(fā)過程中遇到了一些問題,如下: 無法正確引入插件/InitPlugin報(bào)錯(cuò) 使用文檔中寫的I_DestroyPlugin報(bào)錯(cuò)并且再次Init插件后 無法正常播放,報(bào)錯(cuò)如下: 如果你也有類似問題請(qǐng)往下看 首先 開發(fā)包如下: 首先 確認(rèn)你已經(jīng)正確引入了開發(fā)包

    2024年01月16日
    瀏覽(22)
  • 前后端 java 對(duì)接??低暠O(jiān)控-hls實(shí)現(xiàn)h5播放

    前后端 java 對(duì)接海康威視監(jiān)控-hls實(shí)現(xiàn)h5播放

    ??档墨@取監(jiān)控預(yù)覽流的接口當(dāng)中支持 rtsp、rtmp、hls等協(xié)議。 這篇文章主要是說hls協(xié)議的。 貼上海康的開發(fā)平臺(tái)地址,其中有對(duì)應(yīng)的API:??甸_發(fā)平臺(tái) 這里除了main方法之外,有兩個(gè)方法,分別是: 1)分頁獲取監(jiān)控點(diǎn)資源。 即返回所有的監(jiān)控點(diǎn)信息。 2)獲取監(jiān)控點(diǎn)預(yù)覽取

    2024年02月08日
    瀏覽(19)
  • vue中web端播放rtsp視頻流(攝像頭監(jiān)控視頻)(??低曚浵駲C(jī))

    vue中web端播放rtsp視頻流(攝像頭監(jiān)控視頻)(??低曚浵駲C(jī))

    ffmpeg下載?https://ffmpeg.org/download.html 找ffmpeg-release-essentials.zip點(diǎn)擊下載,下載完解壓 ffmpeg.exe 程序運(yùn)行 添加成功后驗(yàn)證是否生效任意地方打開cmd窗口輸入 ffmpeg 打印如下表示成功 新建一個(gè)app.js文件,同級(jí)目錄下npm安裝 node-rtsp-stream 我是直接寫在項(xiàng)目里了,你們可以單獨(dú)寫在外

    2024年04月25日
    瀏覽(36)
  • Python海康威視SDK實(shí)現(xiàn)實(shí)時(shí)預(yù)覽:快速構(gòu)建高效視頻監(jiān)控系統(tǒng)

    Python??低昐DK實(shí)現(xiàn)實(shí)時(shí)預(yù)覽:快速構(gòu)建高效視頻監(jiān)控系統(tǒng) 在當(dāng)今社會(huì),安全問題越來越受到人們的關(guān)注,越來越多的企業(yè)和機(jī)構(gòu)開始建設(shè)視頻監(jiān)控系統(tǒng)。而Python作為一種高效、易用的編程語言,已經(jīng)成為了許多開發(fā)人員的首選。本文將介紹如何使用Python??低昐DK來實(shí)現(xiàn)實(shí)

    2024年02月14日
    瀏覽(23)
  • uni-app引入海康威視h5player實(shí)現(xiàn)視頻監(jiān)控的播放

    uni-app引入??低昲5player實(shí)現(xiàn)視頻監(jiān)控的播放

    知識(shí)儲(chǔ)備 uni-app web-view組件相關(guān)知識(shí):點(diǎn)擊學(xué)習(xí)。 ??低曄嚓P(guān)工具下載:點(diǎn)擊跳轉(zhuǎn)下載。 web-view組件不全屏顯示:uni-app web-view 如果設(shè)置不全屏 不自動(dòng)鋪滿。 工具下載 首先下載??低昲5player的demo 在uni-app項(xiàng)目中static文件夾下創(chuàng)建文件目錄,我命名為h5player 將demo中bin文件

    2024年02月02日
    瀏覽(105)
  • ??低暫笈_(tái)監(jiān)控布防

    ??低暫笈_(tái)監(jiān)控布防

    由于公司業(yè)務(wù)的需要,前端時(shí)間一直在折騰??禂z像頭的對(duì)接。在這期間踩過許多坑,做一記錄分享。 大致的業(yè)務(wù)場(chǎng)景,主要用到的是??档?Ai 攝像頭與高清攝像頭,實(shí)現(xiàn)監(jiān)控布防與實(shí)時(shí)畫面在 web 頁面展示預(yù)覽。 對(duì)于 Ai 攝像頭內(nèi)部已經(jīng)上傳了訓(xùn)練好的模型,直接調(diào)用???/p>

    2024年02月06日
    瀏覽(25)
  • vue2 對(duì)接 ??禂z像頭插件 (視頻WEB插件 V1.5.2)

    vue2 對(duì)接 ??禂z像頭插件 (視頻WEB插件 V1.5.2)

    前言 ??狄曨l插件v.1.5.2版本運(yùn)行環(huán)境需要安裝插件VideoWebPlugin.exe,對(duì)瀏覽器也有兼容性要求,具體看官方文檔 對(duì)應(yīng)下載插件 去??倒倬W(wǎng)下載插件 里面有dome等其他需要用到的 地址: 安裝插件 打開下載的文件里的bin文件 安裝一下VideoWebPlugin vue腳手架中集成插件 把官方資源

    2024年02月03日
    瀏覽(22)
  • ??低暠O(jiān)控?cái)z像頭連接電腦教程

    ??低暠O(jiān)控?cái)z像頭連接電腦教程

    官網(wǎng)下載SADP軟件:https://www.wolai.com/wM6rWeBrRtrfmMH2BTVUXZ 雙擊下載的軟件進(jìn)行安裝 打開軟件,將設(shè)備連接到攝像頭,便可在軟件中搜索到攝像頭 選擇攝像頭,輸入管理員密碼,即可完成對(duì)攝像頭的控制 設(shè)置攝像機(jī)IP地址與網(wǎng)口地址處于同一網(wǎng)段 設(shè)置網(wǎng)絡(luò)攝像機(jī)IP地址時(shí),保持設(shè)

    2024年02月04日
    瀏覽(29)
  • ??低暠O(jiān)控視頻,螢石云免費(fèi)版四路并發(fā)訪問限制繞過

    ??低暠O(jiān)控視頻,螢石云免費(fèi)版四路并發(fā)訪問限制繞過

    公司新裝了不少??低晹z像頭,通過NVR連接到了螢石云,由于螢石云免費(fèi)版限制了單個(gè)攝像頭的并發(fā)訪問數(shù)(每個(gè)攝像頭同時(shí)只允許4個(gè)用戶進(jìn)行查看實(shí)時(shí)視頻),但是又不想付費(fèi)購買企業(yè)版,于是著手思考如何解決這個(gè)問題。 需求 需求很明確,每個(gè)攝像頭需要支持多用戶

    2023年04月08日
    瀏覽(132)
  • ??低暠O(jiān)控相機(jī)的SDK與opencv調(diào)用(非工業(yè)相機(jī))

    ??低暠O(jiān)控相機(jī)的SDK與opencv調(diào)用(非工業(yè)相機(jī))

    本篇主要對(duì)??低暤谋O(jiān)控相機(jī)的SDK回調(diào)進(jìn)行研究,并于opencv結(jié)合,保存圖像,以供后續(xù)其他處理,開發(fā)語言為C++ 2.1 ??礢DK介紹 海康SDK下載地址 根據(jù)自身編譯環(huán)境,下載對(duì)應(yīng)的SDK,需要注意的是,不要和工業(yè)相機(jī)SDK相混淆,工業(yè)相機(jī)好像是MVS是什么玩意兒,現(xiàn)在暫時(shí)沒研究

    2024年02月04日
    瀏覽(39)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包