关于还看视频对讲没有效果而且不会报错 的解决方法

news2024/11/26 5:51:30

1. 海康初步引入

这里我用的是海康h5player
介入海康视频参考 https://www.maxssl.com/article/22480/
这里如果需要需要对讲功能在这里插入图片描述
这里不仅需要引入h5player.js 还需要将talk和talkW文件夹一并引入

2.项目需求

在我的项目中需求是 在地图中展示点位,点击点位开启视频 并有对讲功能,
这里我的想法是 地图页代码太多, 想用组件嵌入的方式来实现这个功能

<template>
  <div id="app">
    <el-container>
      <el-row>
        <div :id="id"
          style="width: 395px;height: 200px;"></div>

      </el-row>
    </el-container>
  </div>
</template>

<script>
// 官方提供的播放工具
import h5player from "../../../public/h5player.min.js";
import { getTalk } from "@/api/Warehouse-management/visualization/visualization";
export default {
  name: "hik",
  props: ["url", "id"],
  data() {
    return {
      // 监控点编码
      code: "",
      // 播放器对象
      player: null,
      talk: true,
    };
  },
  beforeDestroy() {
    // this.talkStop();
  },
  mounted() {
    // 页面加载初始化
    console.log(this.id, this.url, "+============================");

    this.initPlayer();
    // this.play();
    setTimeout(() => {
      this.play();
    }, 1000);
  },
  methods: {

    wholeFullScreen() {
      this.player.JS_FullScreenDisplay(true).then(
        () => {
          console.log(`wholeFullScreen success`);
        },
        (e) => {
          console.error(e);
        }
      );
    },
    openSound() {
      this.player.JS_OpenSound().then(
        () => {
          console.log("openSound success");
          this.muted = false;
        },
        (e) => {
          console.error(e);
        }
      );
    },
    // 开启对讲
    async talkStart() {
      // this.openSound();
      this.talk = false;
      console.log(this.url);
      const res = await getTalk(this.id);
      let url2 = res.msg;
      this.player.JS_SetConnectTimeOut(0, 3000);
      this.player.JS_StartTalk(url2).then(
        () => {
          console.log("talkStart success");
        },
        (e) => {
          console.error(e, "对讲失败", url2);
        }
      );
    },
    // 停止对讲
    // talkStop() {
    //   this.talk = true;
    //   this.player.JS_StopTalk().then(
    //     () => {
    //       console.log("talkStop success");
    //     },
    //     (e) => {
    //       console.error(e);
    //     }
    //   );
    // },
    /**
     * 初始化播放器
     */
    initPlayer() {
      this.player = new window.JSPlugin({
        // 需要英文字母开头 必填
        szId: this.id,
        // 必填,引用H5player.min.js的js相对路径
        szBasePath: h5player,

        // 当容器div#play_window有固定宽高时,可不传iWidth和iHeight,窗口大小将自适应容器宽高
        iWidth: 395,
        iHeight: 200,

        // 分屏播放,默认最大分屏4*4
        iMaxSplit: 16,
        iCurrentSplit: 1,

        // 样式
        oStyle: {
          border: "#343434",
          borderSelect: "#06357c",
          background: "#000",
        },
      });
    },

    /**
     * 播放
     */
    play(index) {
      const _this = this;
      const param = {
        playURL: _this.url,
        // 1:高级模式  0:普通模式,高级模式支持所有
        mode: 0,
      };
      // 索引默认0
      if (!index) {
        index = 0;
      }
      _this.player.JS_Play(_this.url, param, index).then(
        () => {
          // 播放成功回调
          console.log("播放成功");
        },
        (err) => {
          console.log("播放失败");
        }
      );

      // for (let i = 0; i < 4; i++) {
      //   _this.player.JS_Play(_this.url[i].url,{
      //     playURL: _this.url[i].url,
      //     // 1:高级模式  0:普通模式,高级模式支持所有
      //     mode: 0
      //   }, i).then(() => {
      //       // 播放成功回调
      //       console.log('播放成功')
      //     },
      //     (err) => {
      //       console.log('播放失败')
      //     })
      // }
    },

    /**
     * 监控点更新
     * @param data
     */
    onChangeCode(data) {
      this.code = data;
      this.play();
    },
    /**
     * 默认预览
     */
    onSubmit() {
      this.play();
    },

    /**
     * 分屏,这里我太懒了,就循环了一个视频流
     */
    onTwoSubmit(num) {
      const _this = this;
      // 这里的分屏,是以列来算的,如果这里参数2,那么就是横竖两列,就是4格
      this.player.JS_ArrangeWindow(num).then(
        () => {
          // 循环取流
          for (let i = 0; i < num * num; i++) {
            _this.play(i);
          }
        },
        (e) => {
          console.error(e);
        }
      );
    },
  },
};

这里的组件如果只展示视频的话可以直接使用, 但是使用对讲功能会不起作用.而且不会报错,走通了

解决方法

用组件不行的时候,都会想到自带的demo,于是我就尝试新开页面,新页面里只放视频,此时会发现可以使用了, 经过排除法排查,"得出结论海康威视h5对讲功能不能以组件的形式在vue项目中使用, 因为我学疏才浅不知道什么原因,我就用最笨的方法,将上述组件拆分出来自己手写弹框去实现该需求

如果还没有也不报错那就是使用的不是https而是使用的http,浏览器因为安全性不会自动打开麦克风,这是我们需要在浏览器配置一下

浏览器访问地址:chrome://flags-》在页面搜索unsafe-》在搜索结果页面的输入框中填入需要访问的网址-》把后方选项改为enabled,设置完成后,浏览器地址栏下方会显示“您使用的是不受支持的命令行标记”,则说明设置成功-》重新访问网址即可更改网页权限。

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

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

相关文章

Linux操作系统中软件安装来了

在系统中&#xff0c;应用软件是必不可少的&#xff0c;比如一些社交软件&#xff0c;影音娱乐软件&#xff0c;那么我们Windows中安装软件方法主要有两种&#xff1a;第一种是从网站上下载安装包&#xff0c;双击打开安装包后按照提示一步步操作完成安装&#xff1b;第二种是从…

【SpringBoot篇】SpringBoot整合Mybatis实战

&#x1f38a;专栏【SpringBoot】 &#x1f354;喜欢的诗句&#xff1a;天行健&#xff0c;君子以自强不息。 &#x1f386;音乐分享【如愿】 &#x1f384;欢迎并且感谢大家指出小吉的问题&#x1f970; 文章目录 &#x1f33a;Spring Boot和MyBatis的好处&#x1f33a;创建工…

芯片制造中如何测薄膜厚度?

在半导体制造业中&#xff0c;薄膜的厚度对器件的性能和质量有重要影响。薄膜的厚度决定了许多重要的物理和化学性质&#xff0c;对其折射、反射和透射的光学性质有直接影响&#xff0c;可以导致显著的量子尺寸效应&#xff0c;从而改变材料的电子、光学和磁性等。准确测量和控…

谈京东电商API接口的应用场景及返回值说明(获取商品详情,SKU,desc)

1 背景 京东作为电商平台&#xff0c;近几年用户、业务持续增长&#xff0c;访问量持续上升&#xff0c;随着这些业务的发展&#xff0c;京东API接口应运而生。 API接口&#xff0c;就是为了解放客户端与服务端而存在的。对于客户端&#xff0c;使开放给客户端的接口标准统一…

SI24R1兼容NORDIC通信开发资料

一、友商的nRF24L01不要求芯片底部的金属焊盘接地&#xff0c;Si24R1规格书上也没要求接地&#xff0c;这是因为发射功率较低只有0dbm的情况&#xff0c;当芯片发射功率大于0dbm以后&#xff0c;芯片底部的金属焊盘会有很多白噪声耦合到地&#xff0c;而nRF24L01的参考设计金属…

02-详解SpringAOP 面向切面编程

面向切面编程 AOP思想 Spring的IoC容器可以使软件组件松耦合,Spring的AOP则可以让你能够捕捉系统中经常使用的功能并把它转化成组件 Spring的AOP的实现底层可以在JDK动态代理 CGLIB动态代理两种动态代理中灵活切换,当前也可以通过Spring的配置强制使用CGLIB动态代理 如果代…

微信小程序案例3-1 比较数字

文章目录 一、运行效果二、知识储备&#xff08;一&#xff09;Page()函数&#xff08;二&#xff09;数据绑定&#xff08;三&#xff09;事件绑定&#xff08;四&#xff09;事件对象&#xff08;五&#xff09;this关键字&#xff08;六&#xff09;setData()方法&#xff0…

GitHub黑市曝光,高档刷星6元一颗,最奇葩开源项目97%都是刷的

​梦晨 克雷西 发自 凹非寺 量子位 | 公众号 QbitAI 在黑市买GitHub星星多少钱&#xff1f; 最贵的高达6元一颗。 有创业者Yassin Eldeeeb自掏腰包测试了一把。他足足花20欧元&#xff08;约156人民币&#xff09;&#xff0c;只买到25颗“高级星星”。 没错&#xff0c;在黑…

最近非常火的电子木鱼流量主小程序源码系统 带完整搭建教程

在当今数字化时代&#xff0c;人们对于休闲娱乐的需求越来越高。近年来&#xff0c;一种结合了传统文化和现代科技的新型休闲娱乐方式——电子木鱼&#xff0c;迅速在年轻人群中流行开来。电子木鱼流量主小程序源码系统的出现&#xff0c;为这种新型娱乐方式提供了更加便捷的途…

在直播系统中使用RTSP协议传递视频

目录 概述 1、环境准备 2、拉流URL地址 3、导播软件取流 &#xff08;1&#xff09;OBS中拉取RTSP流 &#xff08;2&#xff09;芯象中拉取RTSP流 &#xff08;3&#xff09;vMix中拉取RTSP流 写在最后 概述 提到RTSP协议&#xff0c;很容易想到RTMP协议&#xff0c;它…

【Linux】进程状态详解

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法…感兴趣就关注我吧&#xff01;你定不会失望。 本篇导航 0. 五状态进程模型1. 运行 >> R (running)2. 浅度睡眠 >> S (sleeping)3. 深度睡眠 >> D (disk sleep)4. 暂…

skynet学习笔记01— skynet开发环境搭建(超详细)与第一个skynet程序

00、参考资料 https://blog.csdn.net/qq769651718/category_7480207.html 01、前置准备 开发所在目录 mhzzjmhzzj-virtual-machine:~/work/skynetStudy$ pwd /home/mhzzj/work/skynetStudy前置准备 mhzzjmhzzj-virtual-machine:~/work/skynetStudy$ sudo apt install lua5…

注册电气工程师证书挂靠有风险吗?考试难度很高是吗?前景怎么样

一.先说证书挂靠问题&#xff0c;毫无疑问&#xff0c;有风险&#xff0c;远的不说咱说说近的&#xff0c; 比如下面这张图 从上面这张图可以看出来&#xff0c;哪怕是2023&#xff0c;还有陆陆续续的人因为挂靠的问题被处罚&#xff0c;所以我的建议是能不挂就不挂&#xff0c…

qt opengl 绘制点、线、三角形、多边形(二)

文章目录 一、相关宏定义参数二、代码及示例图1. 点 LG_POINTS 0x00002. 线 GL_LINES 0x00013. 线 GL_LINE_LOOP 0x00024. GL_LINE_STRIP 0x00035. GL_TRIANGLES 0x00046. GL_TRIANGLE_STRIP 0x00057. GL_TRIANGLE_FAN 0x00068. GL_QUADS 0x00079. GL_QUAD_STRIP 0x000810. GL_…

第八章 Python类(面向对象编程)

系列文章目录 第一章 Python 基础知识 第二章 python 字符串处理 第三章 python 数据类型 第四章 python 运算符与流程控制 第五章 python 文件操作 第六章 python 函数 第七章 python 常用内建函数 第八章 python 类(面向对象编程) 第九章 python 异常处理 第十章 python 自定…

数票通批量开票小妙招,双11开票不用愁

每年双十一都是电商企业和财务“疯狂”的日子&#xff0c;随着疫情的回暖&#xff0c;消费者的消费能力蹭蹭上涨&#xff0c;商家的口袋盆满钵满&#xff0c;而财务的加班永无休止&#xff0c;批量开票成为财务人摆脱双十一加班的必备技能。 面对双十一狂欢&#xff0c;相信不少…

一文带你深入浅出Web的自动化测试工具Selenium【建议收藏】

文章目录 前言第01节 Selenium概述第02节 安装浏览器驱动&#xff08;以Google为例&#xff09;第03节 定位页面元素1. 打开指定页面2. id 定位3. name 定位4. class 定位5. tag 定位6. xpath 定位7. css 选择器8. link 定位9. 示例 有道翻译 第04节 浏览器控制1. 修改浏览器窗…

3D目标检测实战 | 图解KITTI数据集评价指标AP R40(附Python实现)

目录 1 准确率和召回率2 P-R曲线的绘制3 AP R11与AP R40标准4 实际案例 1 准确率和召回率 首先给出 T P TP TP、 F P FP FP、 F N FN FN、 T N TN TN的概念 真阳性 True Positive T P TP TP 预测为正(某类)且真值也为正(某类)的样本数&#xff0c;可视为 I o U > I o U t…

3Dmax Vary 渲染 玻璃 水 啤酒 的参数尝试

折射率&#xff1a; 空气折射率为1.0 水折射率一般 1.3 -1.4 &#xff0c;啤酒折射率一般 1.4-1.55 玻璃折射率 一般 1.5-1.7 金刚石钻石 2.0 透明物体 密度越大 折射率越高。折射&#xff1a;同一束光在不同密度介质传播时发生的 光路弯折。如果密度不断发生变化&#…

C++常用格式化输出

在C语言中可以用printf以一定的格式打印字符&#xff0c;C当然也可以。 输入输出及命名空间还不太了解的小伙伴可以看一看C入门讲解第一篇。  在C中&#xff0c;可以用流操作符&#xff08;stream manipulators&#xff09;控制数据的输出格式&#xff0c;这些流操作符定义在2…