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

jitsi音视频会议集成到自己的网页中

将jitsi视频会议集成到自己的web网站:

源码:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title></title><link href="layui/css/layui.css" rel="stylesheet"><script src="layui/layui.js" type="text/javascript" charset="utf-8"></script><script id="script"></script><style>#resourceError {margin: 0 auto;text-align: center;}#resourceError img {width: 20%;}#resourceError div {font-size: 20px;color: gray;}#resourceError button {margin-top: 20px;}</style>
</head>
<body>
<div id="meet"></div>
<div id="resourceError" class="layui-hide"><img src="img/resource_no_load.png"><div><span style="width: 20%">资源加载失败,请检查媒体服务器URL以及媒体服务器状态</span></div><button class="layui-btn layui-btn-primary layui-border" lay-on="refresh">刷新</button>
</div><script>layui.use(['form', 'util', "jquery", "layer"], function () {var form = layui.form;var layer = layui.layer;var util = layui.util;var $ = layui.jquery;var index = layer.load('加载中', {shade: 0.1});const domain = 'localhost:8443';const options = {roomName: '房间名',userInfo: {displayName: '用户名'},width: document.body.clientWidth - 20,height: 800,parentNode: document.querySelector('#meet'),};// 创建一个新的脚本元素const script = document.getElementById('script');// 设置脚本元素的 src 属性为资源的 URLscript.src = 'https://' + domain + '/external_api.js';// 资源加载完成function resourceLoaded() {$("#resourceError").addClass("layui-hide");layer.close(index); // 关闭 loadingconst api = new JitsiMeetExternalAPI(domain, options);// 监听会议结束api.addEventListener('readyToClose', function () {// 执行跳转操作:跳转到首页,默认跳转到jitsi首页window.top.location.href = '/index';});// 获取 Jitsi Meet Web 页面顶部的标志元素(logo)// 去除jitsi logoconst logoElement = document.querySelector('.watermark');if (logoElement) {logoElement.remove();}}// 资源加载出错function resourceError() {layer.close(index);console.log('媒体资源加载失败,请检查访问URL或者Jitsi服务器')layer.msg('媒体资源加载失败,请检查访问URL或者Jitsi服务器', {icon: 2, time: 5000});$("#resourceError").removeClass("layui-hide");}// 监听脚本元素的 load 和 error 事件,并调用回调函数script.addEventListener('load', resourceLoaded);script.addEventListener('error', resourceError);// 将脚本元素添加到页面的 <head> 元素中document.head.appendChild(script);util.on('lay-on', {refresh: function () {location.reload()},})})
</script>
</body>
</html>

温馨提示:
更多参数请参考官网:通过iframe将jitsi集成到自己网站

相关文章:

jitsi音视频会议集成到自己的网页中

将jitsi视频会议集成到自己的web网站&#xff1a; 源码&#xff1a; <!DOCTYPE html> <html lang"en" xmlns:th"http://www.thymeleaf.org"> <head><meta charset"UTF-8"><meta name"viewport" content&…...

浅析Java责任链模式实现

一、概要 定义&#xff1a;责任链模式是一种行为设计模式&#xff0c; 允许你将请求沿着处理者链进行发送。收到请求后&#xff0c; 每个处理者均可对请求进行处理&#xff0c; 或将其传递给链上的下个处理者。 二、应用场景&#xff1a; 1.多条件流程判断&#xff1a;权限相关…...

SpringBoot雪花算法主键ID传到前端后精度丢失问题的解决

Java后端Long类型的范围 -263~263&#xff0c;即&#xff1a;-9223372036854775808~9223372036854775807&#xff0c;它是19位的。 这个数字可以通过方法获得&#xff1a;Long.MAX_VALUE、Long_MIN_VALUE。 前端JS的数字类型的范围 -253~253&#xff0c;即&#xff1a;-9007…...

vue使用elementUI的upload上传文件封装

这篇文章的目的 将文件上传的方法封装一下&#xff0c;供大家统一调用, 话不多说&#xff0c;直接上代码 upload 核心参数说明 action 上传的地址accept 接受上传的文件类型multiple 是否开启多文件上传模式limit 限制上传个数fileList 文件列表disabled 是否禁用 upload 核心方…...

cenos自动启动tomcat

首先创建一个脚本 关闭tomcat 等待2分钟 启动tomcat 并且把日志输出在 /usr/local/tomcat/tomcatchognqi.log #!/bin/bashexport JAVA_HOME/usr/local/jdk/jdk1.8.0_211 export JRE_HOME$JAVA_HOME/jre# 日志文件路径和文件名 LOG_FILE"/usr/local/tomcat/tomcatchognqi.…...

OSI模型与数据的封装

1、OSI模型 上层|| 七层模型 四层模型|| 应用层| 表示层 应用层 http/ftp/ssh/ftps| 会话层 -----------------------------------------------------------------------| 传输层 传输层 tcp/udp ------------------------------…...

【李沐深度学习笔记】数据操作

本课观看地址 数据操作p1 N维数组样例 N维数组是机器学习和神经网络的主要数据结构 1-d向量就是样本的各特征抽象成一个向量&#xff1b;2-d矩阵的每一行是一个样本&#xff0c;每一行都是一个样本的特征向量 3-d可以表示RGB图片&#xff0c;RGB图像是一个三维数组&#xff…...

【蓝桥杯选拔赛真题61】Scratch小猫照镜子 少儿编程scratch图形化编程 蓝桥杯选拔赛真题解析

目录 scratch小猫照镜子 一、题目要求 编程实现 二、案例分析 1、角色分析...

vue3将页面导出成PDF文件(完美解决图片、表格内容分割问题)

vue3将页面导出成PDF文件&#xff08;完美解决图片、表格内容分割问题&#xff09; 1、安装依赖2、在utils中创建htmlToPDF.js文件3、在vue中引入并使用 1、安装依赖 npm install --save html2canvas // 页面转图片 npm install jspdf --save // 图片转pdf2、在utils中创建h…...

软件测试:黑盒测试用例的四种设计方法

一、输入域测试用例设计方法 输入域测试法是一种综合考虑了等价类划分、边界值分析等方法的综合方法&#xff0c;针对输入域测试法中可能出现的各种情况&#xff0c;输入域测试法主要考虑三个方面&#xff1a;  (1)极端测试(ExtremalTesting)&#xff0c;要求在输入域中选择测…...

数据库开发-MySQL基础DQL和多表设计

1. 数据库操作-DQL DQL英文全称是Data Query Language(数据查询语言)&#xff0c;用来查询数据库表中的记录。 1.1 介绍 查询关键字&#xff1a;SELECT 查询操作是所有SQL语句当中最为常见&#xff0c;也是最为重要的操作。在一个正常的业务系统中&#xff0c;查询操作的使…...

PowerDesigner 逆向工程以及IDEA中UML插件

1、MySQL数据库连接&#xff08;JDBC方式&#xff09; 1.1 新建一个pdm&#xff0c;dbms选择mysql 1.2 Database - Connect 选择数据库连接 1.3 配置连接信息 数据库连接这里是通过一个配置文件来获取连接信息的&#xff0c;首次的话因为没有&#xff0c;所以我们需要选择…...

企业架构LNMP学习笔记56

MongoDB数据类型操作&#xff1a;CURD 1、添加数据&#xff1a; mongodb里存储数据的格式文档形式&#xff0c;以bson格式的文档形式。 创建数据库&#xff1a; > use tp5shop switched to db tp5shop > db.getName() tp5shop使用切换库&#xff0c;不存在自动创建&am…...

[Linux入门]---搭建Linux环境

1.Linux环境的搭建方式 使用Linux操作系统的三种途径&#xff1a; 1.直接安装在物理机上&#xff0c;但是由于 Linux 桌面使用起来非常不友好&#xff0c;不推荐。 2.使用虚拟机软件&#xff0c;将 Linux 搭建在虚拟机上&#xff0c;但是由于当前的虚拟机软件(如 VMWare 之类的…...

性能测试知多少---性能分析与调优的原理

最近一直纠结性能分析与调优如何下手&#xff0c;先从硬件开始&#xff0c;还是先从代码或数据库。从操作系统&#xff08;CPU调度&#xff0c;内存管理&#xff0c;进程调度&#xff0c;磁盘I/O&#xff09;、网络、协议&#xff08;HTTP&#xff0c; TCP/IP &#xff09;&…...

“对象创建”模式

通过“对象创建”模式绕开new&#xff0c;来避免对象创建 (new) 过程中所导致的紧耦合(依赖具体类)从而支持对象创建的稳定。它是接口抽象之后的第一步工作。 典型模式 Factory MethodAbstract FactoryPrototypeBuilder Factory Method 动机 (Motivation) 在软件系统中&am…...

ipad手写笔有必要买吗?好用的平板触控笔

众所周知&#xff0c;随着Apple pencil的出现&#xff0c;市面上出现越来越多平替电容笔的出现&#xff0c;无论是价格和功能&#xff0c;几乎都很接近。很多小伙伴不知如何下手&#xff0c;不知道如何从众多品牌中挑选出适合自己的电容笔&#xff0c;今天我为大家总结一下网上…...

OpenGL ES视频特效开发参考Shadertoy参数详解参考Godot文档

今天一个大厂的学员过来问shadertoy上一些参数的问题&#xff0c;因为我之前用过一段时间Godot引擎&#xff0c; 我清晰记得Godot官方文档有明确的解释&#xff0c;所以整理下发给做特效的同学。 Shadertoy是一个网站&#xff0c;它方便用户编写片段着色器并创造出纯粹的魔法。…...

java:逆序排序的三种方法

// 逆序第一种方法 public static void main(String[] args) {int arr[] {11, 22, 33, 44, 55, 66};for (int i arr.length-1; i > 0; i--) {System.out.print("\t"arr[i]);}}缺点&#xff1a;这个是直接逆转&#xff0c;如果里面是随机数没办法比较 逆序第二种…...

pgsql操作json类型

目录 一、表结构 二、实体类 三、json处理器 四、配置文件 五、josn数据 1、插入 2、查找 一、表结构 CREATE TABLE "public"."pg_user" ("id" int8 NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 MINVALUE 1 MAXVALUE 92233720…...

Thinkphp6 配置并使用redis图文详解 小皮面板

这篇文章主要介绍了Thinkphp6 配置并使用redis的方法,结合实例形式详细分析了Redis的安装、配置以及thinkphp6操作Redis的基本技巧,需要的朋友可以参考下 一、安装redis ThinkPHP内置支持的缓存类型包括file、memcache、wincache、sqlite。ThinkPHP默认使用自带的采用think\Ca…...

模拟实现链式二叉树及其结构学习——【数据结构】

W...Y的主页 &#x1f60a; 代码仓库分享 &#x1f495; 之前我们实现了用顺序表完成二叉树(也就是堆)&#xff0c;顺序二叉树的实际作用就是解决堆排序以及Topk问题。 今天我们要学习的内容是链式二叉树&#xff0c;并且实现链式二叉树&#xff0c;这篇博客与递归息息相关&a…...

基于go版本的LoraWAN Server 的470MHz频段的设置

一、参考链接 如果您已经基于最新版本的LoraWAN Server&#xff08;go 版本&#xff09;的环境&#xff0c;搭建好了服务器的环境&#xff0c;但尚未进行参数设置&#xff08;此处以470MHz频段设置为例&#xff09;&#xff0c;可以参考如下链接进行设置&#xff1a; LoraWAN…...

C与C++的函数相互调用

无法直接调用原因&#xff1a; C 和 C 的函数可以相互调用&#xff0c;但需要一些特殊的注意事项&#xff0c;因为它们有不同的编译和链接规则以及一些语法差异。 链接规则&#xff1a; C 语言的链接器通常使用 C 标准的函数命名和调用约定&#xff0c;而 C 链接器使用 C 的函数…...

MySQL架构介绍与说明

1、MySQL架构介绍 和其它数据库相比&#xff0c;MySQL有点与众不同&#xff0c;它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上&#xff0c; 插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的…...

three3D的vite+vue版本基础代码

自己稍微处理一下目录结构 <script setup>// 导入three.js import * as THREE from three// 创建场景 const scene new THREE.Scene();// 创建相机 const camera new THREE.PerspectiveCamera(45, //视角window.innerWidth / window.innerHeight, //宽高比0.1, // 近平…...

实现按钮悬停动画

知识点与技巧 伪元素 使用伪元素来作为按钮悬停效果动画展示的元素 z-index 的使用技巧 使用z-index属性来控制按钮和伪元素的层次关系 transform、transition 复习 使用transform、transition两个属性来实现动画的展示 按钮边框动画 切换效果 核心代码 .btn.btn-border-…...

【C++】深拷贝和浅拷贝 ② ( 默认拷贝构造函数是浅拷贝 | 代码示例 - 浅拷贝造成的问题 )

文章目录 一、默认拷贝构造函数是浅拷贝1、默认拷贝构造函数2、默认拷贝构造函数是浅拷贝机制 二、代码示例 - 浅拷贝造成的问题 一、默认拷贝构造函数是浅拷贝 1、默认拷贝构造函数 如果 C 类中 没有定义拷贝构造函数 , C 编译器会自动为该类提供一个 " 默认的拷贝构造函…...

【Selenium】webdriver.ChromeOptions()官方文档参数

Google官方Chrome文档&#xff0c;在此记录一下 Chrome Flags for Tooling Many tools maintain a list of runtime flags for Chrome to configure the environment. This file is an attempt to document all chrome flags that are relevant to tools, automation, benchm…...

pytorch代码实现之动态卷积模块ODConv

ODConv动态卷积模块 ODConv可以视作CondConv的延续&#xff0c;将CondConv中一个维度上的动态特性进行了扩展&#xff0c;同时了考虑了空域、输入通道、输出通道等维度上的动态性&#xff0c;故称之为全维度动态卷积。ODConv通过并行策略采用多维注意力机制沿核空间的四个维度…...

正版视频素材网站/茶叶网络推广方案

为了方便的处理集合中的元素,Java中出现了一个对象,该对象提供了一些方法专门处理集合中的元素.例如删除和获取集合中的元素.该对象就叫做迭代器(Iterator).对 Collection 进行迭代的类&#xff0c;称其为迭代器。还是面向对象的思想&#xff0c;专业对象做专业的事情&#xff…...

初中做网站用什么软件/厦门网站到首页排名

1.lucene简介 1.1 什么是lucene Lucene是一个全文搜索框架&#xff0c;而不是应用产品。因此它并不像www.baidu.com 或者google Desktop那么拿来就能用&#xff0c;它只是提供了一种工具让你能实现这些产品。 1.2 lucene的工作方式 lucene提供的服务实际包含两部分&#xff1…...

贵阳做网站哪家公司好/2022年最火的关键词

很简单的fibonacci数列性能测试. C用int,C#用int, Parallet用double, int Fib(int a){ if(a<2) return a; return Fib(a-1)Fib(a-2);} Fib(40) 所需时间分别为C : 1500 C# : 1400 Parallet : 1750 C#竟然比C快? 这个结果让我对在C上实现Parallet的欲望减…...

兼职做彩平网站/黑马培训

web开发中&#xff0c;我们经常需要将一个表的数据插入到另外一个表&#xff0c;有时还需要指定导入字段&#xff0c;设置只需要导入目标表中不存在的记录&#xff0c;虽然这些都可以在程序中拆分成简单sql来实现&#xff0c;但是用一个sql的话&#xff0c;会节省大量代码。下面…...

界面设计做的好的网站/写软文是什么意思

本文所用软件版本及下载地址&#xff1a; zookeeper : zookeeper-3.3.6 hadoop : hadoop-2.7.4 链接&#xff1a;https://pan.baidu.com/s/14InWWh2MVWw-0CIDMcypSA 密码&#xff1a;1l98 如果有不对的地方&#xff0c;请大家指正。谢谢 。 集群搭建步骤&#xff1a; 1.集…...

精美合同网站建设/最好的优化公司

DNS域名解析 简单的说就是把域名翻译成 IP 地址&#xff0c;但如果在浏览器直接输入IP&#xff0c;则跳过这个步骤。 DNS寻找解析顺序&#xff1a; 浏览器缓存解析 操作系统缓存解析 公共域名服务器解析&#xff08;根域名服务器/Root Server&#xff0c;主域名服务器&…...