当前位置: 首页 > news >正文

vue使用Mars3d弹框嵌套video视频/实时视频(m3u8)使用hls.js

下载hls.js
http://mars3d.cn/lib/video/hls/hls.js下载
1.首先绘制地图我使用的天地图

 async infoMars3d() {const that = this;var mapOptions = {scene: {center: {lat: 30.435192,lng: 103.936535,alt: 200000,heading: 359,pitch: -79},highDynamicRange: false},// 方式1:在创建地球前的参数中配置basemaps: [{name: "天地图影像(EPSG:4326)",icon: "img/basemaps/tdt_img.png",type: "group",show: true,layers: [{name: "底图",type: "tdt",layer: "img_d",crs: "EPSG:4326",// key: mars3d.Token.tiandituArrkey: ["xxxx"]},{name: "注记",type: "tdt",layer: "img_z",crs: "EPSG:4326",// key: mars3d.Token.tiandituArrkey: ["xxxx"]}]}]};this.map = await new mars3d.Map("videoTreesmap", mapOptions);// 创建矢量数据图层graphicLayer = await new mars3d.layer.GraphicLayer();this.map.addLayer(graphicLayer);this.map.bindContextMenu([]);//地图加载完成this.map.on(mars3d.EventType.load, function(event) {//绘制省边线地图--以前文章有提到that.addDemoGraphics();//绘制视频点that.ArcGisWfs();});},

2.绘制视频点–使用DivGraphic
准备一组数据
urlsList= [{
name: “XXX”,
url: “xxx./hls.m3u8”,
poster: “/poster/XXX.jpg”,
addressLatitude: “30.899118”,
addressLongitude: “103.593783”
},…]

   ArcGisWfs() {const that = this;if (!this.map) return;graphicLayer.clear();graphicLayer.enabledEvent = false; // 关闭事件,大数据addGraphic时影响加载时间const result = this.urlsList;const graphicLayers = new mars3d.layer.GraphicLayer();this.map.addLayer(graphicLayers);for (let j = 0; j < result.length; ++j) {const index = j + 1;// 添加数据const graphic = that.addRandomGraphicByCount(graphicLayers,[result[j].addressLongitude, result[j].addressLatitude, 0],result[j],index);}graphicLayer.enabledEvent = true; // 恢复事件that.goToUrl(result[0]);return result.length;},addRandomGraphicByCount(graphicLayer, position, result, index) {const that = this;// 标点icon图片const srcImg = require("../../assets/images/icon-sssp.png");const graphicImg = new mars3d.graphic.DivGraphic({position,style: {html: ` <div class="mars3d-camera-content"><img class="mars3d-camera-img" style="width: 40px;height:40px"  src=${srcImg} ></div><div class="mars3d-camera-line" ></div><div class="mars3d-camera-point"></div>`,offsetX: -18,visibleDepth: true}popup: `<div style="width: 450px;text-align:center;font-size:15px;">${result.name}</div><video style="width: 450px;height:300px;" id="videoHLS"  muted="muted" autoplay="autoplay" loop="loop" crossorigin="" controls=""></video>`,popupOptions: {offsetY: -50, // 显示Popup的偏移值,是DivGraphic本身的像素高度值template: `<div class="marsBlackPanel animation-spaceInDown"><div class="marsBlackPanel-text">{content}</div><div></div><span class="mars3d-popup-close-button closeButton" style="color:#FFF" >×</span></div>`,horizontalOrigin: Cesium.HorizontalOrigin.LEFT,verticalOrigin: Cesium.VerticalOrigin.CENTER}});graphicLayer.addGraphic(graphicImg);graphicImg.on(mars3d.EventType.click, function(event) {const videoElement = event.container.querySelector("#videoHLS"); // popup对应的DOMif (window.Hls.isSupported()) {const hls = new window.Hls();console.log(window.Hls);hls.loadSource(hlsUrl);hls.attachMedia(videoElement);hls.on(window.Hls.Events.MANIFEST_PARSED, function() {videoElement.play();});} else if (videoElement.canPlayType("application/vnd.apple.mpegurl")) {videoElement.src = hlsUrl;videoElement.addEventListener("loadedmetadata", function() {videoElement.play();});}});},
http://www.lryc.cn/news/298548.html

相关文章:

  • Python爬虫之Ajax数据爬取基本原理
  • osg操控器和键盘切换操控器学习
  • LeetCode1143. Longest Common Subsequence——动态规划
  • 利用Windows10漏洞破解密码(保姆级教学)
  • apk反编译修改教程系列---简单修改apk默认横竖屏显示 手机端与电脑端同步演示【十一】
  • 2301: 不定方程解的个数
  • vue3学习——封装菜单栏
  • 深度学习的进展及其在各领域的应用
  • blender怎么保存窗口布局,怎么设置默认输出文件夹
  • 【开源】基于JAVA+Vue+SpringBoot的实验室耗材管理系统
  • 【ES】--Elasticsearch的分词器详解
  • 【算法】{画决策树 + dfs + 递归 + 回溯 + 剪枝} 解决排列、子集问题(C++)
  • sqlserver 存储过程
  • C语言什么是悬空指针?
  • AES加密后的密码可以破解吗
  • vue3学习——路由进度条
  • VMware虚拟机安装Windows系统教程
  • vue3学习——router-view 过渡动画
  • 从HSE攻击事件漫谈针对勒索攻击防御的两大误区
  • 设计模式(结构型模式)外观模式
  • C语言函数的栈帧与销毁(面试亮点)
  • 使用 GreenSock(GSAP)实现 字符串动画
  • linux系统zabbix监控服务端部署
  • 算法----回溯(附录---剪枝)
  • 从Unity到Three.js(模型文件加载)
  • Webshell一句话木马
  • 【Web】Spring rce CVE-2022-22965漏洞复现学习笔记
  • springboot/ssm大学生选修选课系统高校选课排课成绩管理系统Java系统
  • 【芯片设计- RTL 数字逻辑设计入门 14 -- 使用子模块实现三输入数的大小比较】
  • Xilinx FPGA——在线升级