websocket接海康视频监控

news/2026/1/26 17:49:22/文章来源:https://www.cnblogs.com/liufeiran/p/19534912

index.html
<script src="/js/h5player.min.js"></script>

h5Player.vue
<template><div class="player-container" :id="props.idName"></div>
</template><script setup lang="ts">
import { ref, onMounted, watch, onBeforeUnmount, nextTick } from 'vue'
let resizeObserver: ResizeObserver | null = null
const props = defineProps({playUrl: {// 视频 URL
    type: [String, Array]},split: {type: Number,default: 1},idName: { type: String, required: true, default: 'play_window' },
})const player = ref<any | null>(null)const handleResize = () => {player.value?.JS_Resize()console.log(player.value)
}// 创建播放器实例
const createPlayer = () => {player.value = new window.JSPlugin({szId: props.idName, //需要英文字母开头,唯一性,必填szBasePath: '/js', // 必填,与h5player.min.js的引用目录一致bSupporDoubleClickFull: true, //是否支持双击全屏,默认trueiMaxSplit: 4,iCurrentSplit: props.split})// 事件回调绑定
  player.value.JS_SetWindowControlCallback({windowEventSelect: function (iWndIndex: any) {// 插件选中窗口回调console.log('windowSelect callback: ', iWndIndex)},pluginErrorHandler: function (iWndIndex: any, iErrorCode: any, oError: any) {// 插件错误回调console.log('pluginError callback: ', iWndIndex, iErrorCode, oError)},windowEventOver: function (iWndIndex: any) {// 鼠标移过回调// console.log(iWndIndex);
    },windowEventOut: function (iWndIndex: any) {// 鼠标移出回调// console.log(iWndIndex);
    },windowEventUp: function (iWndIndex: any) {// 鼠标mouseup事件回调// console.log(iWndIndex);
    },windowFullCreenChange: function (bFull: any) {// 全屏切换回调console.log('fullScreen callback: ', bFull)},firstFrameDisplay: function (iWndIndex: any, iWidth: any, iHeight: any) {// 首帧显示回调console.log('firstFrame loaded callback: ', iWndIndex, iWidth, iHeight)},performanceLack: function () {// 性能不足回调console.log('performanceLack callback: ')}})realplay(props.playUrl)
}// 视频播放
const realplay = (url: string | string[]) => {if (!url) returnif (Array.isArray(url)) {url.forEach((item, i) => {player.value.JS_Play(item,{playURL: item,mode: 0},i // 播放到第 i 个窗口
        ).then(() => console.info(`JS_Play success for window ${i}`),(err: any) => console.error(`JS_Play failed for window ${i}:`, err))})} else {const index = player.value.currentWindowIndexplayer.value.JS_Play(url,{playURL: url,mode: 0},index).then(() => console.info('JS_Play success'),(err: any) => console.error('JS_Play failed:', err))}
}const changePlayUrlForWindow = (url: string, index: number) => {player.value?.JS_Stop(index).then(() => {player.value?.JS_Play(url,{playURL: url,mode: 0},index).then(() => console.info(`Changed stream for window ${index}`),(err: any) => console.error(`Failed to change stream for window ${index}:`, err))})
}// 停止所有播放
const stopAllPlay = () => {player.value?.JS_StopRealPlayAll().then(() => {console.log('stopAllPlay success')},(e: any) => {console.error(e)})
}// 停止单个播放
const stopPlay = () => {player.value?.JS_Stop().then(() => {console.log('stop realplay success')},(e: any) => {console.error(e)})
}
watch(() => props.playUrl,(newUrl) => {if (newUrl) {realplay(newUrl)} else {stopAllPlay() // 先清空
    }}
)
defineExpose({changePlayUrlForWindow,
})
onMounted(() => {nextTick(() => {createPlayer()handleResize()const el = document.getElementById(`${props.idName}`)if (el) {resizeObserver = new ResizeObserver(() => {handleResize()})resizeObserver.observe(el)}})window.addEventListener('resize', handleResize)
})
onBeforeUnmount(() => {window.removeEventListener('resize', handleResize)resizeObserver?.disconnect()
})
</script><style scoped>
.player-container {width: 100%;height: 100%;
}
</style>
引入使用
import H5Player from '@/components/hikPlayer/h5Player.vue'
<div class="videoBox"><H5Player :playUrl="monitorList.url" />
</div>
let monitorList = ref({}) //可播放的视频对象
//start模拟
let vvdata = [{ cameraName: '东中转堆场中(北向)(热成像)', stayTime: 10, url: 'ws://10.10.160.180:559/openUrl/sv73qpi', cameraIndexCode: 'a7a3f0b8f1884fa18a47bfe5a47cc664' },{ cameraName: '西三区1号堆场北侧(云台)', stayTime: 12, url: 'ws://10.10.160.180:559/openUrl/tKA7WmY', cameraIndexCode: '7a62becad6744a5986c5ede26df7d944' },{ cameraName: '东中转堆场中(北向)(云台)', stayTime: 28, url: 'ws://10.10.160.180:559/openUrl/vaKhqbm', cameraIndexCode: '48cd7e38e9b74fbd83979fa54c772a6c' },{ cameraName: '西三区1号堆场北侧(热成像)', stayTime: 20, url: 'ws://10.10.160.180:559/openUrl/wLBNsYw', cameraIndexCode: '11720ccb5f9a4c569a856facb0fbd481' }
]
let getVideo = (code) => {for (let i = 0; i < vvdata.length; i++) {if (vvdata[i].cameraIndexCode == code) {return vvdata[i]}}
}
const res = await getVideo(currentItem.cameraIndexCode);
monitorList.value = {cameraName: currentItem.cameraName,cameraIndexCode: currentItem.cameraIndexCode,stayTime: currentItem.stayTime,url: res.url
};
//end模拟

.videoBox {width: 100%;height: 600px;border: 1px solid #a38a69;border-radius: 10px;overflow: hidden;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1220133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从沟通到落地:2026年选择展厅装修公司的完整流程,展台搭建/展览设计/展览搭建/会展服务,展厅装修公司联系方式

在全球化竞争加剧的当下,展厅作为企业品牌展示的核心场景,其装修质量直接影响客户体验、品牌信任度及市场转化率。据中国会展经济研究会2025年数据显示,企业展厅装修投入每增加10%,客户停留时长平均提升23%,意向合…

2026年市面上热门的空气处理单元工厂排行,换热器/蒸汽暖风机/柜式空调机组/工业暖风机,空气处理单元供应商哪家强

近年来,随着工业与商业领域对空气处理需求的持续攀升,尤其是高大空间场所对采暖、通风与空气调节设备的需求激增,空气处理单元行业迎来了高速发展期。然而,市场鱼龙混杂,企业技术实力、产品适配性及服务能力参差不…

2026年1月双轴撕碎机厂家权威推荐:聚焦环保装备智造新力量

在拆解车间内,伴随着低沉的轰鸣,一台双轴撕碎机正在将大块工业废料“吞入”,经过精密剪切与撕裂,吐出均匀规整的再生资源碎片。郑州东宏机械设备有限公司的生产车间内,技术工人们正在对即将出厂的一批DH系列双轴撕…

2026年双轴撕碎机厂家新分析报告:东宏机械聚焦环保装备智造新力量

在拆解车间内,伴随着低沉的轰鸣,一台双轴撕碎机正在将大块工业废料“吞入”,经过精密剪切与撕裂,吐出均匀规整的再生资源碎片。郑州东宏机械设备有限公司的生产车间内,技术工人们正在对即将出厂的一批DH系列双轴撕…

2026年烟道系统优质产品推荐榜

2026年烟道系统优质产品推荐榜据《2026年中国建筑通风排烟系统行业发展白皮书》数据显示,2026年国内建筑通风排烟系统市场规模突破380亿元,年复合增长率达12.7%。随着住宅品质升级、商业综合体业态多元化,市场对烟道…

2026最新益气健脾口服液产品top5推荐!优质企业及品牌权威榜单,贫血/气虚/女性/产后/儿童/脾虚人群专属调理方案

引言 现代快节奏生活下,气血不足、脾胃虚弱已成为影响国民健康的常见问题,尤其在女性、产后妈妈、儿童及中老年群体中发病率居高不下。据中国营养学会2025年度调查数据显示,我国缺铁性贫血人群占比达23.5%,其中女性…

测试镜像让Linux自启配置不再复杂

测试镜像让Linux自启配置不再复杂 你有没有遇到过这样的情况&#xff1a;辛辛苦苦写好一个服务脚本&#xff0c;重启服务器后它却纹丝不动&#xff1f;查日志、翻文档、反复改权限&#xff0c;折腾一小时才发现是rc.local没执行&#xff0c;或是systemd单元文件路径写错、权限…

高通 Wi-Fi 驱动实录:揭秘高通 QRTR 协议栈的“幕后黑手”

我们依然从一个真实的“现场”出发&#xff0c;来探究其背后的技术细节。最近在 Amlogic S905x5 平台上适配高通 Wi-Fi 7&#xff08;QCC2072/PCIe 接口&#xff09;芯片时&#xff0c;我们遇到了 QRTR&#xff08;Qualcomm IPC Router&#xff09;版本不匹配的问题。具体 LOG …

Spring中的AOP和IOC(八股文)

AOP&#xff1a; SpringAOP&#xff08;面向切面编程&#xff09;时Spring框架中的一个重要模块&#xff0c;用于解决系统中的横切关注点问题。所谓横切关注点&#xff0c;指的是系统中分散在各个模块中、与主页务逻辑无关的代码&#xff0c;例如日志记录&#xff0c;事务管理…

重庆地区有哪些研究生留学中介?top10推荐,录取率高

重庆地区有哪些研究生留学中介?top10推荐,录取率高一、重庆研究生如何筛选留学中介?一份聚焦本地服务的指南作为从业十年的西南地区研究生留学规划导师,我深刻理解重庆学子在寻求留学帮助时的核心关切:面对市场上…

污水处理设备怎么挑?2026年这些厂家不容错过,科研院所污水处理设备/RO膜滤芯,污水处理设备实力厂家哪家好

随着环保意识的增强和环保政策的日益严格,污水处理设备市场迎来了前所未有的发展机遇。然而,市场上品牌众多、产品质量参差不齐,如何挑选到靠谱的污水处理设备销售厂家成为众多采购方面临的难题。为助力相关采购方做…

2026年休闲裤品牌推荐:多场景穿着评测,解决舒适与耐用痛点并附购买排名

摘要 在男装消费持续升级的背景下,休闲裤已从基础单品演变为承载多功能、多场景穿着需求的载体。对于追求品质与实用性的现代男性消费者而言,如何在众多品牌中筛选出兼具舒适体感、耐用品质、合身版型与场景适配性的…

邦芒宝典:职场新人必备的10个高效法则

高效工作是职场新人快速适应环境、建立专业形象并实现持续成长的关键。以下10个法则综合了任务管理与人际协作两方面&#xff0c;旨在为职场新人提供系统性的行动指南。 一、 任务执行与效率管理 1、合理规划工作节奏‌&#xff1a;承接任务时需评估优先级与复杂度&#xff0c…

一文搞懂RPC、gRPC与Protobuf:分布式通信的核心技术栈

在分布式系统中&#xff0c;不同服务间的高效通信是核心需求之一。RPC、gRPC与Protobuf作为一套协同工作的技术组合&#xff0c;广泛应用于微服务、跨语言通信等场景。本文将逐一拆解三者的核心概念、工作原理&#xff0c;并重点分析RPC与HTTP的差异&#xff0c;帮助大家理清技…

MybatisPlus工具(详细教程)

基本使用导入包&#xff1a;<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3</version> </dependency> 数据源配置&#xff1a;spring: datasource: drive…

007 商务 item_search - 根据关键词获取商品列表接口对接全攻略:从入门到精通

007 商务 item_search 接口&#xff08;官方标准命名 007.item.search&#xff09;是面向工业品、劳保用品、五金建材、工程机械等 B2B 批发交易场景的核心商品检索接口&#xff0c;支持按关键词、品类、价格区间、供应能力、交易模式等多维度筛选分页商品列表&#xff0c;返回…

污泥浓度水质在线监测仪:实时掌握水体污浊状态

污泥浓度在线监测仪是一种专用于实时检测水体中污泥含量的在线仪器。它能够快速、持续地记录水体中的污泥浓度数据&#xff0c;为水质管理与过程控制提供关键参数。该仪器主要基于散射光法进行测量&#xff0c;量程范围通常覆盖0至20,000g/L&#xff0c;分辨率可达0.001g/L。其…

覆盖海内外车型,佑驾创新获13亿智能驾驶大单

1月25日晚间&#xff0c;佑驾创新&#xff08;2431.HK&#xff09;发布公告&#xff0c;宣布新获某知名车企的项目定点通知&#xff0c;将为该客户面向国内及海外市场的广泛车型开发并提供一系列先进的智能驾驶产品。根据合作规划&#xff0c;该项目预计全生命周期订单总额超人…

医疗系统Vue大文件加密上传DEMO?

前端程序员外包项目解决方案&#xff1a;原生JS大文件传输系统&#xff08;Vue3实现&#xff09; 兄弟&#xff0c;作为陕西的个人前端程序员&#xff0c;我太懂你现在的处境了——甲方要大文件上传&#xff0c;还要兼容IE9&#xff0c;预算卡得死死的&#xff0c;自己头发都快…

手搓1KB深度学习与大模型:极限压缩下的智能本质探索

手搓1KB深度学习与大模型&#xff1a;极限压缩下的智能本质探索引言&#xff1a;当深度学习遇到字节极限在人工智能蓬勃发展的今天&#xff0c;我们见证了GPT-4、Claude等千亿参数大模型的崛起&#xff0c;它们需要数百GB的存储空间和庞大的计算集群。但如果我们反向思考&#…