欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

前端接入萤石云

程序员文章站 2022-07-01 21:01:04
...

萤石云有两个方法使用:

  1. npm引入
  2. 非npm引入
    两个方法中的js内容不同,所以容器初始化方法也不同
    详情可到github查看:https://github.com/Hikvision-Ezviz

①npm引入:
步骤一:首先通过npn下载

npm install ezuikit-js 

步骤二:项目中引入

import  EZUIKit from 'ezuikit-js';
// 或者下面原生script引入,二选一即可
<script src="./ezuikit.js"></script>

步骤三:初始化容器

//首先创建一个容器DOM
 <div id="video-container"></div>
//然后初始化,在合适的地方调用函数即可
init(url,accessToken){
	player =  new EZUIKit.EZUIKitPlayer({
      autoplay: true,
      id: "video-container",
      accessToken:accessToken,
      url: url,// 这里的url可以是直播地址.live  ,也可以是回放地址.rec 或 .cloud.rec
      template: "simple", // simple - 极简版;standard-标准版;security - 安防版(预览回放);voice-语音版;
      // 视频上方头部控件
      //header: ["capturePicture", "save", "zoom"], // 如果templete参数不为simple,该字段将被覆盖
      //plugin: ['talk'],                       // 加载插件,talk-对讲
      // 视频下方底部控件
      // footer: ["talk", "broadcast", "hd", "fullScreen"], // 如果template参数不为simple,该字段将被覆盖
      // audio: 1, // 是否默认开启声音 0 - 关闭 1 - 开启
      // openSoundCallBack: data => console.log("开启声音回调", data),
      // closeSoundCallBack: data => console.log("关闭声音回调", data),
      // startSaveCallBack: data => console.log("开始录像回调", data),
      // stopSaveCallBack: data => console.log("录像回调", data),
      // capturePictureCallBack: data => console.log("截图成功回调", data),
      // fullScreenCallBack: data => console.log("全屏回调", data),
      // getOSDTimeCallBack: data => console.log("获取OSDTime回调", data),
      width: 600,//如果指定了width、height则以这里为准
      height: 400//如果没指定宽高,则以容器video-container为准
    });
  }

②非npm引入
步骤一:首先去官网下载整个文件夹(或这里:https://github.com/Hikvision-Ezviz/EZUIKit-JavaScript)这里称呼文件夹为ezuikit
步骤二:项目中引入

在src\components\monitor\VideoHistoryWatch.vue 中使用
ezuikit文件夹在src\statics\ezuikit
import "../../statics/ezuikit/ezuikit.js";
// 或者script 引入
<script src="../../statics/ezuikit/ezuikit.js"></script>

步骤三:初始化容器

//首先创建一个容器DOM
 <div id="video-container"></div>
//然后初始化,在合适的地方调用函数即可
init(url,accessToken){
	player = new EZUIKit.EZUIPlayer({
      autoplay: true,
      id: "video-container",
      accessToken:accessToken,
      url: url,// 这里的url可以是直播地址.live  ,也可以是回放地址.rec,不能是回放地址 .cloud.rec
      decoderPath: "../../statics/ezuikit",//官网中说绝对路径,github中说相对路径,反正我这么写可以使用
      width: 600,
      height: 400
    });
  }

可以看出两个方法的初始化都不一样,一个是new EZUIKit.EZUIKitPlayer,一个是new EZUIKit.EZUIPlayer。所以两个方法中对应api有些也不通用。(小声逼逼:在这里踩一波官方,文档写的十分简陋)

如果需要动态切换播放地址我做的是:(vue写法)

watch:{
      index(new,old){
      //首先给视频容器id后缀加上一个idnex,当这个index变化时触发下面代码。
        if(old !== null) {
          this.player.stop()//如果要用stop,则stop要写在innerHTML="" 前面
          document.getElementById(`videoContainer${old}`).innerHTML=""
        }
        this.$nextTick(() => {
          this.init(this.url, this.accessToken, new)//把新index传给初始化函数,
        })
      }
    },