【Uni-app 引入海康h5player并接入ws视频流】

这篇具有很好参考价值的文章主要介绍了【Uni-app 引入海康h5player并接入ws视频流】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

内容简介
采用uni-app中的renderjs 引入海康H5 SDK
后端接入海康综合安防平台的开放API获取预览流
海康H5 SDK 下载地址

接入原因
因在移动端接入不管是hls flv rtsp rtmp流的播放稳定性和速度均很慢,特采用ws直连流来播放,效率很稳定性均显著提高。因采用前者流可以直接使用原生的播放组件,所以会比较便捷不用进行封装。后者ws流需要引入专用开发包。
海康官网也提供了其它的SDK比如直连摄像头的,但是需要映射多个摄像头或者单独的硬盘录像机,接入方式也是采用renderjs的办法接入。而我们采购了安防平台提供了开放API所以采用接口的形式获取。

准备工作
下载开发包放置项目static目录下
【Uni-app 引入海康h5player并接入ws视频流】

源码如下
引入h5player.min.js 注意点 src地址要采用相对路径。
JS部分 此处代码均在renderjs中 renderjs使用方法请研究官网示例或看掘金中这位大哥的用法 地址

mounted(){
	if (typeof window.JSPlugin === 'function') {
		this.intWindow();
	} else {
		const script = document.createElement('script')
		script.src = 'static/HK/h5player.min.js' //h5player.min.js 相对路径
		script.onload = this.intWindow.bind(this)
		document.head.appendChild(script)
	};	
},

methods:{
	// 初始化播放窗口
	intWindow(){
		let that = this;
		this.rPlay = new JSPlugin({
			szId: "play_window", //需要英文字母开头 必填
			szBasePath: "static/HK", // 必填,引用H5player.min.js的js相对路径
			oStyle: {
			  border: "none",
			  borderSelect: "none",
			  background: "#000",
			}
		});
	},
	// 接收逻辑层发送的播放地址
	receiveUrl(newValue, oldValue, ownerVm, vm) {
		let that = this
		if(newValue.url){
			let playUrl = newValue.url
			that.rPlay.JS_Play(playUrl,{
				playURL:playUrl,										
			}).then(
				()=>{
					that.$ownerInstance.callMethod('playStatus',{
						type:"success",
						msg:"播放成功"
					})
				},
				(e)=>{
					that.loading = false;
					that.$ownerInstance.callMethod('playStatus',{
						type:"error",
						msg:e
					})
				}
			)
		}
	}	
}

Html代码如下 因为是单独抽了的播放组件 所以播放地址是从外部传递过来的,故使用watch监听一下,如果是在一个组件里面只用获取到播放地址后直接给player中的url赋值即可

//此处js代码均在逻辑层中
//播放窗口dom元素  高度  info:player 用来传递播放地址 stop:stopPlay 用来控制销毁播放器 其它方法请自行封装原理类似
<view id='play_window' 
	:style="{'height':height + 'px'}" 
	:info='player'
	:stop='stopPlay'
	:change:info='hk.receiveUrl'
	:change:stop='hk.receiveStop'>	
</view>

data() {
	return {
		//接收播放地址
		player:{
			url:""
		},
		//销毁播放窗口状态
		stopPlay:false,
		
	}
},

methods:{
	playStatus(val){
		if(val.type === 'success'){
			console.log('播放成功');	
		}else{
			console.log('播放失败')
			console.log(val.msg)
		}
	},
}

watch:{
	playUrl(newValue,oldValue){
		if(newValue){
			this.loading = true;
			this.player.url = newValue;
		}
	}
}

最终效果图如下:

【Uni-app 引入海康h5player并接入ws视频流】文章来源地址https://www.toymoban.com/news/detail-505327.html

到了这里,关于【Uni-app 引入海康h5player并接入ws视频流】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue2项目 使用海康视频h5player@2.0版本

    一、下载开发包         我们需要去海康官网下载h5player@2.0版本的一些用到的文件 二、引入开发包         下载之后我们把下载的文件打开把bin里的文件移动到pubilc文件里,可以自己单独建一个文件放在里面 注意:一定要放在vue中的public文件夹中 否则会报错 三、引用下载

    2024年02月03日
    浏览(34)
  • Vue 集成海康h5player,实现ws协议的实时监控播放

    首先,前往官网下载h5player.js的demo包: 海康开放平台 海康威视合作生态致力打造一个能力开放体系、两个生态圈,Hikvision AI Cloud开放平台是能力开放体系的核心内容。它是海康威视基于多年在视频及物联网核心技术积累之上,融合AI、大数据、云计算等技术,为合作伙伴提供

    2024年02月13日
    浏览(31)
  • vue h5player.min.js对接海康威视,踩过的坑

    一、播放的视频无法占满全屏 1、JSResize()接口内部做了50ms防抖动,调用不会立即生效,延时50ms获取最新大小设置窗口。 2、h5player内部会在网页缩放的时候自适应父容器大小,但是在单独变更父容器大小的时候无法自适应,需要重新设置大小 3、出现不生效的问题一般是有单

    2024年02月14日
    浏览(31)
  • uni-app搭建h5项目

    一、 打开官方网站 https://uniapp.dcloud.net.cn/quickstart-cli.html 二、找到使用vue-cli命令行,按照文档上的步骤进行搭建 全局安装 vue-cli 搭建项目 可以根据命令行搭建,搭建vue2.0对应的是webpack, 也可以搭建vue3.0+vite,命令行下载不下来,直接访问高亮起来的 gitee 然后下载模板即可

    2024年02月22日
    浏览(50)
  • uni-app引入地图map组件--APP开发

    需求场景:使用uni-app地图组件,实现APP开发 开发环境:Mac,HbuildX3.4.14 测试环境:iOS真机调试 一、流程 1、关于Uini-app的map组件:官方文档说明。map组件是原生组件,目前只针对原生APP开发,因此通过app-nvue实现,同时选择的地图服务商只能是高德地图。 2、创建高德地图应用

    2024年02月15日
    浏览(45)
  • uni-app打开外部链接方式汇总(h5&app)

    问题描述 在应用中打开一个外部的html页面,即完整http链接的页面。h5通过window.open或是内嵌iframe基本都没有问题,本文主要针对app端的方法进行汇总,不涉及到小程序端。 方案1 使用uni-app的扩展组件 uni-link ,使用参考文档uni-app官网 该组件的行为是在app内打开外部浏览器,

    2024年02月01日
    浏览(25)
  • uni-app如何区分 app、h5、小程序代码; uni-app如何判断是android、ios、小程序

    uniapp是DCloud公司于2012年开始研发的能够一次代码开发,生成H5、小程序(微信、支付宝、百度、华为等)、APP等应用的技术的统称,开发工具是HBuilderX,功能非常强大,由此引申出许多技术社区与生态环境。 使用HBuilderX开发Uniapp程序的项目,用它生成多端应用,由于兼容各种

    2024年02月11日
    浏览(34)
  • 【uni-app项目如何引入 uView组件库】

    uView官方文档 第一步: 在公司创建完成uniapp项目后引入uView 第二步: 您如果是使用HBuilder X创建的uniapp项目,使用uView组件库的话需要在HBuilder X下载插件库 下载 uni_modules ,(如果这个看不懂可以看官方文档) (1) HBuilder X插件库中下载 uni_modules 现在是已经将 uView导入到项目中了

    2024年02月05日
    浏览(36)
  • uni-app滚动分页 兼容(App 小程序 H5)

    因为手机端本身屏幕空间不大 所以大家一般都会选择用滚动分页 首先 我在根目录下创建了一个 api目录 下面创建了一个bookApi.js 其中写了一个请求函数 getBookList 根据当前页 page 和 每页展示多少条 pageSize 获取数据 那么 我的组件代码是这样的 首先 我们肯定要引入bookApi.js中的

    2024年02月16日
    浏览(35)
  • H5向uni-app小程序传递参数

    1.script src=\\\"https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js\\\"/script 本地下载包引入也可以。  2.传递参数。 3.接收参数。 @message=\\\"handleMessage\\\"   获取当前数据是一个数组,每次获取让数组长度-1就是你需要的数据。

    2024年02月13日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包