JSPM

  • Created
  • Published
  • Downloads 960
  • Score
    100M100P100Q102179F
  • License ISC

ezuikit javascript for npm

Package Exports

  • ezuikit-js
  • ezuikit-js/ezuikit.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ezuikit-js) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

[EZUIKit-JavaScript-npm][ezuikit-js]

轻应用npm版本,降低接入难度,适配自定义UI,适配主流框架

低延时预览,云存储回放,SD卡回放

功能API丰富,如:播放控制,音频控制,视频截图,实时获取视频OSDTime,视频录制,设备对讲,电子放大,全屏等

获取ezuikit-js

$ npm install ezuikit-js

引入ezuikit-js

import  EZUIKit from 'ezuikit-js';

如果你使用原生方法,可以通过标签引用

  <script src="./ezuikit.js"></script>

开始使用 - 初始化

基本使用

创建DOM

  <div id="video-container"></div>

播放器初始化

直播

    var player = new EZUIKit.EZUIKitPlayer({
      id: 'video-container', // 视频容器ID
      accessToken: 'at.3bvmj4ycamlgdwgw1ig1jruma0wpohl6-48zifyb39c-13t5am6-yukyi86mz',
      url: 'ezopen://open.ys7.com/G39444019/1.live',
      width: 600,
      height: 400,
    })

回放

    var player = new EZUIKit.EZUIKitPlayer({
      id: 'video-container', // 视频容器ID
      width: 600,
      height: 400,
      accessToken: 'at.3bvmj4ycamlgdwgw1ig1jruma0wpohl6-48zifyb39c-13t5am6-yukyi86mz',
      url: 'ezopen://open.ys7.com/G39444019/1.rec'
    })

tips

为方便开发者快速接入

我们提供了测试accessToken,测试播放地址,并提供了几种常用场景使用示例。你可以通过使用示例,使用测试播放地址,测试accessToken,在你的应用快速接入。

测试播放地址: ezopen://open.ys7.com/G39444019/1.live

你可以通过以下地址获取到测试accessToken 获取测试accessToken 用来播放上述测试播放地址。

使用示例

基本使用: 基本使用示例

自定义主题: 自定义主题示例

本地主题配置: 本地主题配置示例

PC端预览-固定主题: PC端预览-固定主题示例

PC端回放-固定主题: PC端回放-固定主题示例

移动端预览-固定主题: 移动端预览-固定主题示例

移动端回放-固定主题: 移动端回放-固定主题示例

单页面多实例(视频多窗口): 单页面多实例(视频多窗口)示例

附录: 初始化参数说明

参数名类型描述是否必选
idString播放器容器DOM的idY
accessTokenString授权过程获取的access_tokenY
urlString

直播

标清

ezopen://open.ys7.com/${设备序列号}/{通道号}.live

高清

ezopen://open.ys7.com/${设备序列号}/{通道号}.hd.live

回放

sd卡回放

初始化参数 url值为:
ezopen://open.ys7.com/${设备序列号}/{通道号}.rec?begin=yyyyMMddhhmmss

云存储回放

初始化参数 url值为:
ezopen://open.ys7.com/${设备序列号}/{通道号}.cloud.rec?begin=yyyyMMddhhmmss 视频ezopen协议播放地址 详见:ezopen协议

Y
audioint是否默认开启声音 1:打开(默认) 0:关闭 N
widthint视频宽度,默认值为容器容器DOM宽度 Y
heightint视频高度,默认值为容器容器DOM高度Y
templateString
模板值描述
simple极简版 *固定模板 仅包含视频播放窗口,创建实例后通过方法集控制视频播
放相关功能
standard标准版; *固定模板 包含视频窗口,叠加了停止,录制,全屏控件(通过
控件快捷调用方法集合控制视频播放相关功能,但你仍然可以通过方法集直接控制视频播放相关功
能。下同)
security安防版(预览回放); *固定模板 包含视频窗口,叠加了录制,全屏控件,
标清/高清切换,预览录制切换控件*
voice语音版; *固定模板 包含视频窗口,叠加了录制,全屏控件,语音播报,语音
对讲控件*
pcLive *固定模板 按钮列表,颜色,底部头部背景色固定,可用于pc端预览,如需
修改按钮配置,头部底部背景色,可参考 {{自定义themeId}},或者使用
themeData本地配置*
pcRec *固定模板 按钮列表,颜色,底部头部背景色固定, 可用于pc端回放,如需
修改按钮配置,头部底部背景色,可参考 {{自定义themeId}},或者使用themeData
本地配置*
mobileLive *固定模板 按钮列表,颜色,底部头部背景色固定,可用于移动端预
览,如需修改按钮配置,头部底部背景色,可参考 {{自定义themeId}},或者使用themeData
本地配置*
mobileRec*固定模板 按钮列表,颜色,底部头部背景色固定, 可用于移动端回放,
如需修改按钮配置,头部底部背景色,可参考 {{自定义themeId}},或者使用themeData
本地配置*
{{自定义themeId}}(建议使用)开放平台提供了查询账号下主题列表,增加主题
,修改主题,删除主题接口。
你可以通过调用开放平台提供的接口自定义创建多个主题,根据主题Id动
态渲染头部,底部样式,按钮隐藏显示,排布及按钮样式
接口示例下载(请导入postman查看示例)
theme自定义主题,开放平台控制台配置
(v0.3.0版本及以上支持,建议使用 自定义themeId,或者使用themeData本地
配置);
themeDataObject themeData将主题数据本地化,设置本地数据,需要删除template参数
你可以通过themeData修改按钮位置,颜色,头部底部颜色等配置。

配置示例:



{
    "header": {
        "color": "#1890ff",
        "activeColor": "#FFFFFF",
        "backgroundColor": "#000000",
        "btnList": [
            {
                "iconId": "deviceID",
                "part": "left",
                "defaultActive": 0,
                "memo": "顶部设备名称",
                "isrender": 1
            },
            {
                "iconId": "deviceName",
                "part": "left",
                "defaultActive": 0,
                "memo": "顶部设备ID",
                "isrender": 1
            },
            {
                "iconId": "cloudRec",
                "part": "right",
                "defaultActive": 0,
                "memo": "顶部设备ID",
                "isrender": 0
            },
            {
                "iconId": "rec",
                "part": "right",
                "defaultActive": 0,
                "memo": "顶部设备ID",
                "isrender": 0
            }
        ]
    },
    "footer": {
        "color": "#FFFFFF",
        "activeColor": "#1890FF",
        "backgroundColor": "#00000021",
        "btnList": [
            {
                "iconId": "play",
                "part": "left",
                "defaultActive": 1,
                "memo": "播放",
                "isrender": 1
            },
            {
                "iconId": "capturePicture",
                "part": "left",
                "defaultActive": 0,
                "memo": "截屏按钮",
                "isrender": 1
            },
            {
                "iconId": "sound",
                "part": "left",
                "defaultActive": 0,
                "memo": "声音按钮",
                "isrender": 1
            },
            {
                "iconId": "pantile",
                "part": "left",
                "defaultActive": 0,
                "memo": "云台控制按钮",
                "isrender": 1
            },
            {
                "iconId": "recordvideo",
                "part": "left",
                "defaultActive": 0,
                "memo": "录制按钮",
                "isrender": 1
            },
            {
                "iconId": "talk",
                "part": "left",
                "defaultActive": 0,
                "memo": "对讲按钮",
                "isrender": 1
            },
            {
                "iconId": "hd",
                "part": "right",
                "defaultActive": 0,
                "memo": "清晰度切换按钮",
                "isrender": 1
            },
            {
                "iconId": "webExpend",
                "part": "right",
                "defaultActive": 0,
                "memo": "网页全屏按钮",
                "isrender": 1
            },
            {
                "iconId": "expend",
                "part": "right",
                "defaultActive": 0,
                "memo": "全局全屏按钮",
                "isrender": 1
            }
        ]
    }
}
N
pluginString按需加载插件,可选值: talk:对讲,示例:plugin:["talk"] N
handleSuccessfunction自动播放成功回调N
posterString视频默认封面 版本号> v0.4.6 N

方法调用

同步方法(方式1) 方法支持通过promise回调,可通过回调方式执行下一步动作(方式2)。

开始播放

  // 方式1
  player.play();
  // 方式2
  player.play()
  .then(()=>{
    console.log("执行播放成功后其他动作");
  });

停止播放

  // 方式1
  player.stop();
  // 方式2
  player.stop()
  .then(()=>{
    console.log("执行停止成功后其他动作");
  });

开启声音

  // 方式1
  player.openSound();
  // 方式2
  player.openSound()
  .then(()=>{
    console.log("执行开启声音成功后其他动作");
  });

开始录制

  // 方式1
  player.startSave("唯一文件名");
  // 方式2
  player.startSave("唯一文件名")
  .then(()=>{
    console.log("执行开始录制成功后其他动作");
  });

停止录制并下载文件

  // 方式1
  player.stopSave();
  // 方式2
  player.stopSave()
  .then(()=>{
    console.log("执行停止录制成功后其他动作");
  });

抓图

  // 方式1 - 下载到本地
  player.capturePicture("文件名");
  // 方式2 - 返回base64格式
  const capCallback = (data) => {
    console.log("data",data)
  }
  player.capturePicture('default',capCallback)

开始对讲

  player.startTalk();

结束对讲

  player.stopTalk();

全屏

  player.fullScreen();

取消全屏

  player.cancelFullScreen();

获取OSD时间

   player.getOSDTime()
  .then((time)=>{
    console.log("获取到的当前播放时间", time);
  });

切换地址播放

可用于在播放中切换设备,切换播放参数,以及直播切换回放等

  player.changePlayUrl(options)
  .then(()=>{
    console.log("切换成功")
  });

options参数说明

参数名 类型 描述 是否必选
type String 播放地址类型,"live":预览,"rec":回放;“cloud.rec”:云存储回放 Y
accessToken String 授权过程获取的access_token Y
deviceSerial String 设备序列号,存在英文字母的设备序列号,字母需为大写 Y
channelNo int 通道号 Y
hd boolean 是否为高清 true-主码流(高清) false-子码流(标清) Y
validCode String 设备验证码(加密设备播放需要输入验证码) Y
begin String type类型为回放有效,开始时间 格式为“YYYYMMDDHHmmss” N
end String type类型为回放有效,结束时间 格式为 “YYYYMMDDHHmmss” N

设置封面

你可以在初始化时,通过参数poster设置默认封面 实例初始化后可以调用设置封面方法再次更改封面

  player.setPoster(pictureUrl)
  .then(()=>{
    console.log("更改封面成功");
  });

开启电子放大

  // 方式1
  player.enableZoom();
  // 方式2
  player.enableZoom()
  .then(()=>{
    console.log("开启电子放大成功");
  });

关闭电子放大

  // 方式1
  player.closeZoom();
  // 方式2
  player.closeZoom()
  .then(()=>{
    console.log("关闭电子放大成功");
  });

重置画面宽高

  player.reSize(width, height);

使用示例

如果使用原生js,可参考demos => base-demo

如果使用react,可参考demos => react-demo

如果使用vue,可参考demos => vue-demo