uniapp接入萤石微信小程序插件 可播放 可云台控制

萤石官方提供了一些适用于uniapp / 小程序的方案

如 小程序半屏  hls  rtmp  等 都有坑

截止到2023.11.7

hls不支持H265  rtmp需要在小程序申请直播类目  所以都不适合项目使用  故选用小程序插件方式 uniapp引入使用  该方式仅需在小程序后台申请插件即可  审核时间大约3天左右  

本文参考了uniapp小程序插件  以及 萤石微信小程序插件接入文档

效果如下

1. 插件申请

登录您的小程序微信公众平台,点击左侧菜单栏,进入设置页,在第三方设置->插件管理->添加插件 中申请ezplayer插件,申请的插件appId为【wxf2b3a0262975d8c2】。

申请后请邮件联系萤石开放平台通过申请,并提供萤石账号、小程序名以及小程序appid

邮件联系方式:open-team@ezvizlife.com,未邮件联系的小程序插件申请将不予通过。

2. 插件引入

打开根目录的 manifest.json 文件 点击源码视图  位置如图  插入以下代码

// 萤石小程序插件
"plugins": {
    "ezplayer": {
    "version": "1.0.0",
    "provider": "wxf2b3a0262975d8c2"
    }
}

3. 页面引入

打开根目录的 pages.json 文件 在使用页面的路由内写入以下代码

"mp-weixin": {
    "usingComponents": {
    "ezplayer": "plugin://ezplayer/ezplayer"
    }
}

4. 页面使用

直接当标签用就OK了  标签属性 是否必填  参数配置等等问题  参考官方文档

<ezplayer 
    id="ezplayer" 
    :accessToken="at.2s5bel782cnsdm748sv5j2ke09p7mpze-54xbxtugfh-0remxt9-gmfxmtml2"
    :url="rtmp://open.ys7.com/BA7248908/1/live" 
    :width="300" 
    :height="260"
    bind:handleError="handleError"
/>

提示

Tips

  1. 多看文档
  2. 播放URL传参较为严格  多一个 / 都不行
  3. 由于此方式调用播放协议为rtmp 故 微信开发者工具中无法播放 须使用体验版播放
  4. 确定播放格式以及参数无误 且 真机依旧无法播放的情况下 看看控制台是否报错  有可能是未开放预览权限   不要等 handleError 报提示信息

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 25
    评论
要在 uniapp 微信小程序接入萤石云,您需要完成以下步骤: 1.注册并登录萤石云开发者平台,创建应用并获取 AppKey 和 AppSecret。 2.在 uniapp 项目中安装并引入微信小程序官方提供的“微信小程序 API”插件。 3.在 uniapp 项目中安装并引入“uni-axios”插件,用于发送 HTTP 请求。 4.编写代码实现用户授权登录并获取 AccessToken。 5.编写代码实现调用萤石云提供的 API,例如获取设备列表、打开直播预览等。 下面是一个简单的示例代码: ```javascript // 引入 axios 模块 import axios from 'uni-axios' // 用户授权登录并获取 AccessToken async function login() { const res = await axios.post('https://open.ys7.com/api/lapp/token/get', { appKey: 'your_app_key', appSecret: 'your_app_secret' }) return res.data.data.accessToken } // 获取设备列表 async function getDeviceList(accessToken) { const res = await axios.get('https://open.ys7.com/api/lapp/device/list', { headers: { Authorization: `Bearer ${accessToken}` } }) return res.data.data.deviceList } // 打开直播预览 async function openLivePreview(accessToken, deviceSerial, channelNo) { const res = await axios.post('https://open.ys7.com/api/lapp/live/address/get', { accessToken, deviceSerial, channelNo }) return res.data.data.url } // 调用示例 async function main() { // 用户授权登录并获取 AccessToken const accessToken = await login() // 获取设备列表 const deviceList = await getDeviceList(accessToken) // 打开直播预览 const livePreviewUrl = await openLivePreview(accessToken, deviceList[0].deviceSerial, 1) console.log(livePreviewUrl) } main() ``` 请注意,以上代码仅供参考,实际应用中还需要考虑错误处理、用户体验等方面的问题。
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值