乐橙云开发文档
快速入门
  • 文档综述
  • 云直播开发指南
  • 轻应用开发指南
  • 移动应用开发指南
  • 桌面应用开发指南
  • 消息推送
  • 云转存
  • 国标GB28181设备接入
  • HTTP接口
  • 服务支持
前往官网
快速入门
  • 文档综述
  • 云直播开发指南
  • 轻应用开发指南
  • 移动应用开发指南
  • 桌面应用开发指南
  • 消息推送
  • 云转存
  • 国标GB28181设备接入
  • HTTP接口
  • 服务支持
前往官网
快速入门
  • 文档综述

  • 云直播开发指南

  • 轻应用开发指南

  • 小程序对接指南

    • 小程序对接开发
    • 半屏小程序对接开发
    • 小程序插件对接开发
  • 移动应用开发指南

  • 桌面应用开发指南

  • 消息推送

  • 云转存

  • 国标GB28181设备接入

  • IOT物模型

  • HTTP接口

  • 服务支持

本页目录
一、简介
二、支持功能及优势
三、接入指南
1、申请插件:
2、获取临时权限校验秘钥
功能详情
请求地址
传入参数说明
样例输入
返回 data 字段说明
样例输出
3、对接小程序插件
3.1 配置 app.json 文件
3.2 集成插件页面.json 文件
3.3 插件 xml 参数配置
3.3.1 样例输出
3.3.2 插件接口参数说明
3.3.3 事件回调 handleEvent 状态码
3.3.4 组件如何销毁
4、成品效果

小程序插件对接开发

一、简介

乐橙云开放平台小程序插件,是开放平台将视频播放、设备操作、本地抓图功能封装后集成的组件。通过乐橙云小程序插件即可使用核心功能,无需重复开发,且主体小程序不需要再申请微信 live-player 组件资质,降低开发周期和成本,快速接入乐橙云平台。

二、支持功能及优势

支持功能:
1、支持摄像头实时预览。注:需要设备为 H264 编码格式;

2、支持设备语音对讲;

3、支持设备本地录像、云录像播放;

4、支持摄像机云台操作;

5、支持本地截图保存到相册。

优势:
1、开发者主体小程序无需申请微信 live-player 组件资质,即可进行视频播放;

2、快速实现视频预览、回放、对讲等功能,无需重复开发,可按需集成所需功能;

3、集成插件后支持二次开发多样化的功能。

三、接入指南

1、申请插件:

打开小程序微信公众平台,登录开发者小程序账号,进入设置->第三方设置->插件管理->添加插件,输入乐橙云小程序 appId:wx26dd070c090dfbdf,集成 ImouPlayer 插件。如下图。

2、获取临时权限校验秘钥

功能详情

根据设备序列号、通道号,生成临时权限校验秘钥,用于平台校验开发者和设备的权限。

请求地址

https://openapi.lechange.cn/openapi/createWeChatMiniProgramToken

传入参数说明

参数名参数类型是否必填默认值合法值参数说明
tokenString是管理员 accessToken,获取协议请参考:accessToken
deviceIdString是设备序列号
channelIdString是通道号
productIdString否物模型设备必填。可以通过 listDeviceDetailsByIds、listDeviceDetailsByPage 接口获取 productId,若列表返回的 productId 字段有值即代表该设备为 IoT 设备;若列表接口未获取到则可不填

样例输入

{
  "system": {
    "ver": "1.0",
    "appId": "lcdxxxxxxxxx",
    "sign": "xxxxxxxxxxxxxx",
    "time": 1603370757,
    "nonce": "1a411d5a-e88b-45ee-b590-53da98375edd"
  },
  "id": "sdf23423lkj32l4324",
  "params": {
    "token": "At_xxxxxxxxxxxxxxxxxx",
    "deviceId": "TESTQWER1234",
    "channelId": "0",
    "productId": "qwejhdgsh"
  }
}

返回 data 字段说明

字段名字段类型字段说明
miniTokenString临时校验秘钥,长度32位,字母+数字组成,有效期最大24小时。使用大于12小时但未满24小时,再请求接口即会生成新秘钥,此时新、老秘钥均可正常使用
expireTimeInteger秘钥剩余有效时长,单位秒

样例输出

{
  "result": {
    "msg": "操作成功。",
    "code": "0",
    "data": {
      "miniToken": "xxxxxxxxxxxxxxxxxxxx",
      "expireTime": "7200"
    }
  },
  "id": "sdf23423lkj32l4324"
}

3、对接小程序插件

3.1 配置 app.json 文件

{
  "plugins": {
    "myPlugin": {
      "version": "1.0.0",
      "provider": "wx26dd070c090dfbdf"
    }
  }
}

3.2 集成插件页面.json 文件

{
  "usingComponents": {
    "imou-player": "plugin://myPlugin/imou-player"
  }
}

3.3 插件 xml 参数配置

3.3.1 样例输出
<imou-player
  miniToken="例qweyj3j324j234k3cjxhckk324k34sdf"
  deviceId="TESTQWER1234"
  channelId="0"
  liveType="localRecord"
  recordBeginTime="2024-06-27 17:29:03"
  recordEndTime="2024-06-27 18:29:03"
  functionConfig="PTZ, snapShot"
  playConfig='{"resolution": "SD", "voice": "on", "fullScreen": "off"}'
  width="260"
  height="210"
  bind:handleEvent="handleEvent"
  objectFit="contain"
></imou-player>
3.3.2 插件接口参数说明
参数字段类型是否必填参数说明
miniTokenString是临时校验秘钥,通过 createWeChatMiniProgramToken 接口获取,用于校验开发者和设备的关系
deviceIdString是设备序列号
channelIdString是通道号
liveTypeString是播放类型,real-实时预览,localRecord-本地录像,cloudRecord-云录像
recordBeginTimeString否录像播放开始时间,liveType 属性值为 localRecord 或 cloudRecord 时必填
recordEndTimeString否录像播放结束时间,liveType 属性值为 localRecord 或 cloudRecord 时必填
functionConfigString否功能选项配置,talk-对讲,snapShot-抓图,PTZ-云台, timeLine-展示时间轴。可选择多项功能,中间以英文逗号隔开
playConfigObject否播放配置,resolution-分辨率,可选 HD 高清、SD 标清,默认 SD;voice-声音开关,可选 on 开启、off 关闭,默认 on;fullScreen-全屏播放开关,可选 on 全屏、off 非全屏,默认 off。示例{"resolution": "HD", "voice": "on", "fullScreen": "off"}
widthString否功能页宽度,单位 px,默认屏幕宽度,最小 260px
heightString否播放窗口高度,单位 px,默认 210px,最小 210px
objectFitString否填充模式,可选值有 contain,fillCrop。contain:图像长边填满屏幕,短边区域会被填充⿊⾊;fillCrop:图像铺满屏幕,超出显示区域的部分将被截掉 [V1.0.3 开始支持]
handleEventFunction否事件回调
3.3.3 事件回调 handleEvent 状态码
状态码描述
1001参数缺失
1002参数错误
2001播放器状态
2996播放器暂停
2997对讲结束
2998此时间段无录像片段
2999录像已播放完毕
3001操作异常(云台、对讲、云录像、本地录像时间轴获取异常)
3002页面切到后台
3003播放地址获取失败
3.3.4 组件如何销毁

ImouPlayer 插件实例被销毁-播放组件同步销毁。可以通过控制组件显示/隐藏实现。示例如下:

<!-- index.wxml -->
<button type="primary" bindtap="init">初始化播放组件</button>

<button type="primary" bindtap="destroy">组件销毁</button>

<imou-player
  id="imou-player"
  wx:if="{{show}}"
  miniToken="xxxxxx"
  deviceId="xxxxxx"
  channelId="xxxxxx"
  liveType="real"
  recordBeginTime="xxxxxx"
  recordEndTime="xxxxxx"
  functionConfig="xxxxxx"
  playConfig="xxxxxx"
  width="xxx"
  height="xxx"
  bind:handleEvent="handleEvent"
  objectFit="contain"
></imou-player>
// index.js
const plugin = requirePlugin("myPlugin");

Page({
  data: {
    show: false,
  },
  init() {
    if (this.data.show) {
      this.setData({
        show: false,
      });
    }
    this.setData({
      show: true,
    });
  },
  handleEvent: function (e) {
    console.log("事件回调:", e.detail);
  },
  destroy() {
    this.setData({
      show: false,
    });
  },
});

4、成品效果

集成乐橙 ImouPlayer 小程序插件,按第 3 节传参后,最终成品效果如下:

半屏小程序对接开发
应用开发