unniapp通过iframe引入海康H5player实现视频监控的播放

本文介绍了如何在海康开放平台中使用H5player组件进行视频播放,包括引入组件、动态获取视频源并嵌入到页面的iframe中,以及实现通过WebSocket获取实时视频流并进行播放的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.首先引入H5player

下载地址:海康开放平台

海康视频H5播放器组件 - DCloud 插件市场

我是把demo的文件直接放到staic文件直接用他的demo.html,也能用bin文件自己创建html文件引入h5player.min.js文件 根据自己的需求

2.在需要用的页面直接

<iframe :src="this.webURL" frameborder="0" :style="styleObject"></iframe>

webURL:'./static/h5player/demo.html?data=',

    			async getData(params) {
				uni.request({
					url: 'http:xxxxxxxxxxxx',//请求地址
					data: {
						cameraIndexCode: this.code,
						protocol: 'ws'
					},
					method: 'GET',
					success: (res) => {
						this.url = res.data.result
						let playURL = this.url
						this.webURL += playURL
					}
				})
			},

3.在staic-h5player-demo.html

					realplay() {
						const paramsStr = window.location.search
						const params = new URLSearchParams(paramsStr)//获取url的参数
						this.urls.realplay = params.get('data')//获取url的参数播放地址
						let realplay= params.get('data') 
						let {
							player,
							mode,
							urls
						} = this,
						index = player.currentWindowIndex,
							playURL = realplay

						player.JS_Play(playURL, {
							playURL,
							mode
						}, index).then(
							() => {
								console.log('realplay success')
							},
							e => {
								console.error(e)
							}
						)
					},

4.完成

### 海康威播放器嵌入网页时 Picker 被遮挡的解决方案 当海康威播放器嵌入到网页中时,如果遇到 picker(如日期选择器或其他弹窗组件)被遮挡的问题,通常是因为 HTML 元素的堆叠顺序未正确设置所致。以下是详细的分析与解决方案: #### 1. 使用 `z-index` 属性调整层叠上下文 HTML 的层叠上下文决定了页面上元素的显示层次关系。通过合理配置 CSS 中的 `z-index` 属性可以解决此问题。 - **确保目标元素具有较高的 `z-index` 值** 如果 picker 是由 JavaScript 动态生成的内容,则需要为其指定一个较大的 `z-index` 值以覆盖其他元素[^1]。 ```css .picker-class { position: absolute; /* 或 relative/fixed */ z-index: 9999; } ``` - **确认父级容器的定位属性** 子元素的 `z-index` 效果依赖于其最近的带有 `position` 定位属性的祖先节点。因此,需检查 picker 所属的父级容器是否有合适的定位属性[^2]。 ```css .parent-container { position: relative; } ``` #### 2. 处理 Flash 插件起的遮挡问题 部分旧版海康威插件可能基于 Adobe Flash 实现,在这种情况下,Flash 内容默认会忽略浏览器的 `z-index` 设置,从而导致遮挡现象发生。 - **启用 WMode 参数** 需要在加载 Flash 插件时显式设置 `wmode="transparent"` 或 `wmode="opaque"` 参数,以便让 Flash 内容尊重页面中的 `z-index` 规则[^3]。 ```html <object ...> <param name="wmode" value="transparent"> ... </object> ``` #### 3. 对现代 Web 技术的支持 随着技术发展,许多厂商已逐步淘汰 Flash 并转向更现代化的技术栈(如 H5)。对于采用 H5 的海康威播放器而言,上述问题一般较少出现,但仍需注意以下几点: - **检查 iframe 是否影响布局** 若播放器是以 `<iframe>` 形式嵌套至当前页面,则可能存在跨域限制或样式冲突的情况。此时可通过修改 iframe 的沙箱策略来缓解此类问题[^4]。 ```html <iframe sandbox="allow-scripts allow-same-origin"></iframe> ``` - **动态计算并更新 DOM 结构** 当某些交互操作触发后重新渲染 UI 组件时,可能会因为尺寸变化而导致位置错乱。建议监听窗口大小改变事件,并适时调用方法刷新控件状态[^5]。 ```javascript window.addEventListener('resize', () => { const player = document.getElementById('player'); if (player) { player.style.width = '100%'; player.style.height = 'auto'; // 自适应高度逻辑 } }); ``` --- ### 总结 针对海康威播放器嵌入网页过程中 picker 被遮挡的现象,主要可以从以下几个方面入手解决问题:一是利用 CSS 的 `z-index` 和定位机制优化前端展示效果;二是针对传统 Flash 插件场景入额外参数支持透明模式;三是关注最新标准下潜在兼容性隐患及其应对措施。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值