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

vue video重复视频 设置 srcObject 视频流不占用资源 减少资源浪费

 // 直接设置srcObject减少获取视频流:通过 captureStream() 方法从下方视频元素获取视频流。

// 设置 srcObject:将获取到的视频流设置为上方视频的 srcObject 减少资源浪费

// 获取到需要复制到的dom元素   
const firstVideoElement = proxy.$refs.firstVideo;
// 获取需要复制的视频流元素
const activeVideoElement = proxy.$refs[`videoRefs${index}`][0];
// 赋值给需要显示的dom
firstVideoElement.srcObject = activeVideoElement.captureStream();
onMounted(async () => {try {const { data } = await getCameraInfo(props.id);if (!data) return;// console.log("视频监控", data);streams.value = data;if (streams.value && streams.value.length > 0) {await nextTick();streams.value.forEach((stream, index) => {let videoElement = proxy.$refs["videoRefs" + index][0]; // 通过 ref 获取视频元素const webRtcServer = new WebRtcStreamer(videoElement, url);webRtcServer.connect(stream.rtspVideoUrl);webRtcServers.value.push(webRtcServer); // 存储 WebRtcStreamer 实例});// 监听 loadedmetadata 事件proxy.$refs["videoRefs0"][0].addEventListener('loadedmetadata', () => {const firstVideoElement = proxy.$refs.firstVideo;const activeVideoElement = proxy.$refs[`videoRefs0`][playNum.value];firstVideoElement.srcObject = activeVideoElement.captureStream();});// nextTick(() => {//     // 默认加载第一个视频//     const firstVideoElement = proxy.$refs.firstVideo;//     // const firstWebRtcServer = new WebRtcStreamer(firstVideoElement, url);//     // firstWebRtcServer.connect(streams.value[playNum.value].rtspVideoUrl);//     // webRtcServers.value.push(firstWebRtcServer);//     const activeVideoElement = proxy.$refs[`videoRefs${index}`][0];//     firstVideoElement.srcObject = activeVideoElement.captureStream();// });}} catch (error) {console.error('Failed to fetch camera info:', error);}
});

原视频流加载完成后,再复制流

相关文章:

vue video重复视频 设置 srcObject 视频流不占用资源 减少资源浪费

// 直接设置srcObject减少获取视频流:通过 captureStream() 方法从下方视频元素获取视频流。 // 设置 srcObject:将获取到的视频流设置为上方视频的 srcObject 减少资源浪费 // 获取到需要复制到的dom元素 const firstVideoElement proxy.$refs.firs…...

JavaFx 21 项目Markdown 预览、编辑、新建、文件树、删除、重命名

项目文件结构 项目的源代码和资源文件存放在以下路径: 源代码: src/main/java/com/kong/markdown/ 包含多个 Java 文件,主要实现了应用的功能: App.java:主类,可能包含应用的启动逻辑。FileService.java:可能与文件操作相关的服务类。MainController.java:控制器类,可…...

git项目提交步骤(简洁版)

1.创建仓库 2.填写 信息 3.点击这个按钮 4.找到要上传的文件,在目录内右键点击 5.依次执行命令 在命令窗口中输入:git init 复制仓库地址: 在命令窗口中输入:git remote add origin 仓库地址 在命令窗口中输入:…...

风水算命系统架构与功能分析

系统架构 服务端:Java(最低JDK1.8,支持JDK11以及JDK17)数据库:MySQL数据库(标配5.7版本,支持MySQL8)ORM框架:Mybatis(集成通用tk-mapper,支持myb…...

Clojure语言的学习路线

Clojure语言的学习路线 Clojure是一种现代的Lisp方言,运行于Java虚拟机(JVM)上。它具备强大的函数式编程特性,支持并发和多线程编程,适合处理复杂的数据和计算任务。由于其简洁和灵活的语法,Clojure在数据…...

网络安全核心目标CIA

网络安全的核心目标是为关键资产提供机密性(Confidentiality)、可用性(Availablity)、完整性(Integrity)。作为安全基础架构中的主要的安全目标和宗旨,机密性、可用性、完整性频频出现,被简称为CIA,也被成为你AIC,只是顺序不同而已…...

Wi-Fi Direct (P2P)原理及功能介绍

目录 Wi-Fi Direct (P2P)介绍Wi-Fi Direct P2P 概述P2P-GO(P2P Group Owner)工作流程 wifi-Direct使用windows11 wifi-directOpenwrtwifi的concurrent mode Linux环境下的配置工具必联wifi芯片P2P支持REF Wi-Fi Direct &#xff…...

Perl语言的数据结构

Perl语言的数据结构 Perl是一种功能强大的、灵活的脚本语言,广泛用于文本处理、系统管理、网络编程以及许多其他领域。其灵活性不仅体现在语法上,还体现在其丰富的数据结构上。本文将深入探讨Perl的主要数据结构,包括标量、数组、哈希以及引…...

【MFC】设置CTreeCtrl单个节点的文字颜色

问题 功能调整需要依据不同状态设置树控件中单个节点的文字颜色。 分析 1、CTreeCtrl本身有设置文字颜色的接口SetTextColor,但是这个接口是设置树控件整体的文字颜色。 2、在自定义接口可以对树控件单个节点进行更新文字颜色和背景颜色,接收自定义绘制…...

【CSS】设置滚动条样式

文章目录 基本语法用法案例 基本语法 在CSS中,可以使用 ::-webkit-scrollbar 和相关伪元素来为滚动条设置样式,但请注意这些伪元素是非标准的,主要用于WebKit内核浏览器(如Chrome、Safari)。 ::-webkit-scrollbar CSS …...

Gitlab-Runner配置

原理 Gitlab-Runner是一个非常强大的CI/CD工具。它可以帮助我们自动化执行各种任务,如构建、测试和部署等。Gitlab-Runner和Gitlab通过API通信,接收作业并提交到执行队列,Gitlab-Runner从队列中获取作业,并允许在不同环境下进行作…...

代码随想录 哈希 test 8

18. 四数之和 - 力扣(LeetCode) 与三数之和类似,重点在剪枝和去重的区别,由于target可正可负,因此需要分两种情况讨论,如果target为正,则若当前选择的元素之和大于target,需要跳出这…...

[SAP ABAP] 使用LOOP AT...ASSIGNING FIELD-SYMBOL 直接更新内表数据

使用 LOOP AT...ASSIGNING FIELD-SYMBOL... 可以直接修改内表中的数据,而不需要先将内表数据复制到相应的工作区,然后再更新回内表中,从而提高性能 针对上述代码进行优化,我们使用LOOP AT...ASSIGNING FIELD-SYMBOL 直接更新内表数…...

MySQL数据导出导入

一、数据导出 1.导出全库备份到本地的目录 mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines--default-character-setutf8 --lock-all-tables --add-drop-database -A >db.all.sql 2.导出指定库到本地的目录(例如mysql库) mysqldump -u$USER -p$PASSWD -h127.…...

leetcode 127. 单词接龙

题目:127. 单词接龙 - 力扣(LeetCode) 先建立一颗trie树,从beginWord开始bfs;bfs的过程中,对trie树进行dfs寻找“只差一个字母”的其他未遍历到的字符串;直到bfs遍历到endWord。 struct Node …...

如何开发一个支持海量分布式锁的应用库

分布式锁是一种用于控制分布式系统中资源访问的同步机制,确保在任意时刻只有一个客户端能够获取到锁,并对共享资源进行操作。 作用 1.保证数据一致性:在多个节点并发执行的情况下,分布式锁可以防止同时修改同一份数据&#xff0c…...

JavaScript系列(17)--类型系统模拟

JavaScript类型系统模拟 🎭 今天,让我们深入探讨JavaScript中的类型系统模拟。虽然JavaScript是一门动态类型语言,但我们可以通过各种方式来实现类型检查和验证。 类型系统基础 🌟 💡 小知识:JavaScript是…...

openssl编译

关于windows下,openssl编译 环境准备 安装 perl:https://djvniu.jb51.net/200906/tools/ActivePerl5_64.rar安装nasm:https://www.nasm.us/pub/nasm/releasebuilds/2.13.01/win64/nasm-2.13.01-installer-x64.exe下载opensll源码:https://o…...

校园网络综合布线系统设计与实践

校园网络综合布线系统设计与实践 摘要:随着信息时代的发展,网络综合布线显得更加重要。综合布线技术也日益引起人的重视。综合布线管理系统是一个实用性十分强的系统工程,同样又是现代社区信息化建设的基础与必要产品,是对多用途…...

如果商品信息更新,爬虫会失效吗?

当商品信息更新时,爬虫是否失效取决于更新的具体内容。以下是一些可能影响爬虫的因素: 可能导致爬虫失效的情况 HTML结构变化:如果 yiwugo 平台更新了商品详情页面的 HTML 结构,比如改变了元素的标签、类名或 ID,那么…...

从本地事务到分布式一致性:Python 工程师必须掌握的数据库事务、Saga、Outbox 与补偿实战

从本地事务到分布式一致性:Python 工程师必须掌握的数据库事务、Saga、Outbox 与补偿实战 很多开发者第一次接触“事务”,通常是在数据库课上学到一句话:事务要么全部成功,要么全部失败。 这句话没错,但只说对了一半。…...

别再手动翻GitHub了!用Crawl4AI自动抓取AI开源项目(附Python配置避坑指南)

用Crawl4AI打造你的AI开源情报系统:从零配置到自动化实战 每次在GitHub上手动搜索AI项目时,你是否也经历过这样的困境?输入"machine learning"得到的结果里混杂着十年前的教学代码,筛选"deep learning"标签后…...

保姆级教程:手把手教你用nav2_map_server在ROS2 Humble中加载并显示PGM地图

保姆级教程:手把手教你用nav2_map_server在ROS2 Humble中加载并显示PGM地图 在机器人导航开发中,地图加载是最基础却最容易出错的环节之一。很多ROS2初学者在从ROS1迁移到ROS2时,会发现原本顺畅的地图显示流程突然变得棘手——明明按照ROS1的…...

FlowState Lab生成复杂分形图案:Mandelbrot集扩展可视化

FlowState Lab生成复杂分形图案:Mandelbrot集扩展可视化 1. 当数学艺术遇上AI生成 分形几何一直被誉为"大自然的几何学",而Mandelbrot集则是其中最著名的代表。传统生成方法需要大量计算资源,往往在细节表现和生成效率之间难以平…...

Ostrakon-VL面试题库解析:如何应对视觉AI相关的Java八股文

Ostrakon-VL面试题库解析:如何应对视觉AI相关的Java八股文 1. 视觉AI与Java后端的结合点 视觉AI技术在Java后端开发中的应用越来越广泛,特别是在Ostrakon-VL这类多模态大模型场景下。作为Java开发者,需要掌握以下几个核心结合点&#xff1a…...

OpenClaw隐私保护方案:千问3.5-35B-A3B-FP8本地处理敏感数据

OpenClaw隐私保护方案:千问3.5-35B-A3B-FP8本地处理敏感数据 1. 为什么需要本地化隐私保护方案 去年我在帮一位医生朋友设计病历分析助手时,遇到了一个棘手问题——当使用云端大模型处理患者数据时,总会有隐私泄露的隐忧。即使平台承诺加密…...

告别网页版!用Ollama在本地部署Llama-3.2-3B的实战

告别网页版!用Ollama在本地部署Llama-3.2-3B的实战 1. 为什么选择本地部署Llama-3.2-3B 1.1 网页版大模型的局限性 使用网页版大模型服务时,我们常常面临几个痛点:响应速度受限于网络质量、对话历史无法长期保存、隐私数据可能被上传到云端…...

Qwen3-14B私有部署镜像助力网络协议分析与故障模拟

Qwen3-14B私有部署镜像助力网络协议分析与故障模拟 1. 网络工程师的新助手 最近遇到一个挺有意思的场景:一位网络工程师朋友跟我吐槽,说他花了整整三天时间排查一个诡异的网络延迟问题,最后发现是某个交换机上的QoS配置出了问题。这种经历在…...

AI绘画新手必看:用LiuJuan Z-Image Generator,实时查看GPU占用防卡顿

AI绘画新手必看:用LiuJuan Z-Image Generator,实时查看GPU占用防卡顿 1. 为什么GPU监控对AI绘画如此重要? 想象一下这样的场景:你精心构思了一幅画面,输入了完美的提示词,满怀期待地点击生成按钮&#xf…...

Phi-4-mini-reasoning部署教程:Ansible自动化部署脚本编写

Phi-4-mini-reasoning部署教程:Ansible自动化部署脚本编写 1. 项目介绍 Phi-4-mini-reasoning是微软推出的3.8B参数轻量级开源模型,专为数学推理、逻辑推导和多步解题等强逻辑任务设计。这个模型主打"小参数、强推理、长上下文、低延迟"的特…...