API 参考
API 参考
拉流播放
使用 createDeviceFlvLive 创建 FLV 地址,赋给 live-player。
| 返回字段(data) | 说明 |
|---|---|
flv / flvHD | 标清/高清 FLV 播放地址 |
入参、样例与错误码见官方页 createDeviceFlvLive 与 错误码。
语音对讲
使用 createDeviceRtmpLive 创建 RTMP 推流地址,赋给 live-pusher。
createDeviceRtmpLive
include 路径非法:../../.vuepress/fragments/sdk/miniprogram-createDeviceRtmpLive.md
半屏路径参数
安全边界(与 [安装与初始化](/sdk/miniprogram/install/) 一致)
appSecret 仅用于服务端签名,不得写入小程序 path 或前端代码。 token 须由后台 accessToken 换取后传入。
| 参数名 | 是否必填 | 参数说明 |
|---|---|---|
| token | 是 | 管理员 accessToken(后台换取) |
| appId | 是 | 开放平台账号 appId |
| deviceId | 是 | 设备序列号 |
| channelId | 是 | 设备通道号 |
| recordType | 设备回放时必填 | 回放录像类型,local:本地录像;cloud:云录像 |
wx.openEmbeddedMiniProgram({
appId: 'wx26dd070c090dfbdf',
path: '/pages/playBackRedirect/index?token={TOKEN}&appId={APP_ID}&deviceId={DEVICE_ID}&channelId=0&recordType=local'
})
createWeChatMiniProgramToken
include 路径非法:../../.vuepress/fragments/sdk/miniprogram-createWeChatMiniProgramToken.md
插件接口参数
样例输出
<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>
插件接口参数说明
| 参数 | 字段类型 | 是否必填 | 参数说明 |
|---|---|---|---|
| miniToken | String | 是 | 临时校验密钥,通过 createWeChatMiniProgramToken 接口获取,用于校验开发者和设备的关系 |
| deviceId | String | 是 | 设备序列号 |
| channelId | String | 是 | 通道号 |
| liveType | String | 是 | 播放类型,real-实时预览,localRecord-本地录像,cloudRecord-云录像 |
| recordBeginTime | String | 否 | 录像播放开始时间,liveType 属性值为 localRecord 或 cloudRecord 时必填 |
| recordEndTime | String | 否 | 录像播放结束时间,liveType 属性值为 localRecord 或 cloudRecord 时必填 |
| functionConfig | String | 否 | 功能选项配置,talk-对讲,snapShot-抓图,PTZ-云台, timeLine-展示时间轴。可选择多项功能,中间以英文逗号隔开 |
| playConfig | String(JSON) | 否 | wxml 属性须传 JSON 字符串(与 functionConfig 逗号分隔字符串不同);示例 '{"resolution":"SD","voice":"on","fullScreen":"off"}'。字段:resolution(HD/SD)、voice(on/off)、fullScreen(on/off) |
| width | String | 否 | 功能页宽度,单位 px,默认屏幕宽度,最小 260px |
| height | String | 否 | 播放窗口高度,单位 px,默认 210px,最小 210px |
| objectFit | String | 否 | 填充模式,可选值有 contain,fillCrop。contain:图像长边填满屏幕,短边区域会被填充⿊⾊;fillCrop:图像铺满屏幕,超出显示区域的部分将被截掉 [V1.0.3 开始支持] |
| handleEvent | Function | 否 | 事件回调 |
事件回调 handleEvent 状态码
| 状态码 | 描述 |
|---|---|
| 1001 | 参数缺失 |
| 1002 | 参数错误 |
| 2001 | 播放器状态 |
| 2996 | 播放器暂停 |
| 2997 | 对讲结束 |
| 2998 | 此时间段无录像片段 |
| 2999 | 录像已播放完毕 |
| 3001 | 操作异常(云台、对讲、云录像、本地录像时间轴获取异常) |
| 3002 | 页面切到后台 |
| 3003 | 播放地址获取失败 |
组件如何销毁
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,
});
},
});