海康摄像头视频流h5播放功能

访问海康开发者平台工具,下载所需的工具插件,这是我需要的工具开发包

下载后目录内容为bin,demo,doc下图所示

打开bin目录下的文件,我们所需要的是h5player.min.js文件

我用的是uniapp做的h5项目,在index.html里引入目录里的文件h5player.min.js,我把该文件夹放到了static里(根据个人的情况而定)

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <script>
      var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
        CSS.supports('top: constant(a)'))
      document.write(
        '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
        (coverSupport ? ', viewport-fit=cover' : '') + '" />')
    </script>
    <title></title>
    <!--preload-links-->
    <!--app-context-->
  </head>
  <body>
    <div id="app"><!--app-html--></div>
    <script type="module" src="/main.js"></script>
	<script src="/static/h5player/bin/h5player.min.js" type="module"></script>
  </body>
</html>

在需要的文件里进行编写视频流播放代码

<template>
    <view>
        <view v-for="(item,index) in dataList" :key="index">
             <view style="width: 100%;height: 100%;">
				<view style="width: 100%; height: 100%;" :id="`play_window-${index}`</view>
			 </view>
        </view>
    </view>
</template>
<script>
//这是我自己的接口,根据实际来
import {
		getVideoStream
	} from '../../api/index.js'
   export default {
      data(){
        return{
          dataList:[]
        }
      },
      mounted(){
            getVideoStream({
							cameraIndexCode: 35040350001310586030,//文档要求传的code
							protocol: 'ws',//根据自己需要的格式来传,不传默认rtsp
						})
						.then(res => {
							if(res.data.code == 500){
								return
							}
							this.$nextTick(() => {
								this.playVideo( res.data.data.url, 0)//第一个参数为视频流地址,第二个参数为索引
							})
						})
						.catch(err => {
							console.error("视频接口失败:", err)
						})
      },
      methods:{
        playVideo(url, index) {
				const url = url
				setTimeout(() => {
					var myPlugin = new JSPlugin({
						szId: `play_window-${index}`, //父窗口id,需要英文字母开头 必填
						szBasePath: '/static/h5player/bin', // 必填,与h5player.min.js的引用目录一致
						mseWorkerEnable: false, //是否开启多线程解码,分辨率大于1080P建议开启,否则可能卡顿
						bSupporDoubleClickFull: true, //是否支持双击全屏,true-双击是全屏;false-双击无响应
						iMaxSplit: 1,
						openDebug: true
					})
					myPlugin.JS_Play(
						url, {
							playURL: url,
							mode: 0,
							PlayBackMode: 1,
							keepDecoder: 0
						},
						index
					).then(() => {
						console.log('✅ 海康视频播放成功!');
					}).catch((err) => {
						console.log('❌ 播放失败:', err);
					});
				}, 500)
			},
     }
   }
</script>

返回的视频流格式(所需要的Appkey,Secret都是写在后端,不暴露在前端)

不理解为什么这么做的也可以直接看官方工具文档,在doc文件夹下的H5player开发指南里

也可以下载OpenAPI接口测试工具测试其他接口数据返回内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值