uniapp结合萤石视频ezuikit.js的爬坑记录

1.前言  由于开发需要,项目需要接入萤石的视频监控。萤石官方提供了三种协议的的视频方式,hls,rtmp,ezopen。三种协议是视频直播有一定差别,由于hls有十多秒的延迟,不符合项目的要求,所以本人采用了延迟最低的ezopen。在使用的过程中遇到了很多很多的坑,即使在尝试别人的解决方案依旧无用。希望这篇文章对使用的同学有所帮助。2.初探  看看官方文档,他有一个UIKit JavaScript的demo示例,请使用的同学先下载官方demo示例。同时看看官方文档他是这么描述使用的:
摘要由CSDN通过智能技术生成

1.前言

  由于开发需要,项目需要接入萤石的视频监控。萤石官方提供了三种协议的的视频方式,hls,rtmp,ezopen。三种协议是视频直播有一定差别,由于hls有十多秒的延迟,不符合项目的要求,并且因为hls,rtmp需要用vedio标签,uniapp会对video标签初始化,

所以本人采用了延迟最低的ezopen。

在使用的过程中遇到了很多很多的坑,即使在尝试别人的解决方案依旧无用。希望这篇文章对使用的同学有所帮助。

2.初探

  看看官方文档,他有一个UIKit JavaScript的demo示例,请使用的同学先下载官方demo示例。同时看看官方文档他是这么描述使用的:

第一步:首页把下载的uikit的js文件放到static下,注意不能放到其他文件夹下,否则在配置decoderPath地址时,会找不到,导致报错

第二步:在需要的vue文件下引用uikit.js

<template>
	<view class="">
		<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回" title="监控详情"></uni-nav-bar>
		<view class="">
			<view id="myPlayer"></view>
		</view>
	</view>
</template>
<script>
	import EZUIKit from '../../static/js/ezuikit.js'
	export default {
		data() {
			return {
				device_id: '',
				accessToken: ""
			}
		},
		onLoad(options) {
			this.device_id = options.device_id
			this.accessToken = options.accessToken
			this.getAddr()
		},
		methods: {
			async getAddr() {
				let url=`ezopen://open.ys7.com/${this.device_id}/1.hd.live`
				var player = new EZUIKit.EZUIPlayer({
					id: 'myPlayer',
					url: url,
					autoplay: true,
					accessToken: this.accessToken,
					decoderPath: 'sta
  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
要在 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() ``` 请注意,以上代码仅供参考,实际应用中还需要考虑错误处理、用户体验等方面的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值