当前位置: 首页 > 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集成到自己网站

http://www.lryc.cn/news/168010.html

相关文章:

  • 浅析Java责任链模式实现
  • SpringBoot雪花算法主键ID传到前端后精度丢失问题的解决
  • vue使用elementUI的upload上传文件封装
  • cenos自动启动tomcat
  • OSI模型与数据的封装
  • 【李沐深度学习笔记】数据操作
  • 【蓝桥杯选拔赛真题61】Scratch小猫照镜子 少儿编程scratch图形化编程 蓝桥杯选拔赛真题解析
  • vue3将页面导出成PDF文件(完美解决图片、表格内容分割问题)
  • 软件测试:黑盒测试用例的四种设计方法
  • 数据库开发-MySQL基础DQL和多表设计
  • PowerDesigner 逆向工程以及IDEA中UML插件
  • 企业架构LNMP学习笔记56
  • [Linux入门]---搭建Linux环境
  • 性能测试知多少---性能分析与调优的原理
  • “对象创建”模式
  • ipad手写笔有必要买吗?好用的平板触控笔
  • OpenGL ES视频特效开发参考Shadertoy参数详解参考Godot文档
  • java:逆序排序的三种方法
  • pgsql操作json类型
  • Thinkphp6 配置并使用redis图文详解 小皮面板
  • 模拟实现链式二叉树及其结构学习——【数据结构】
  • 基于go版本的LoraWAN Server 的470MHz频段的设置
  • C与C++的函数相互调用
  • MySQL架构介绍与说明
  • three3D的vite+vue版本基础代码
  • 实现按钮悬停动画
  • 【C++】深拷贝和浅拷贝 ② ( 默认拷贝构造函数是浅拷贝 | 代码示例 - 浅拷贝造成的问题 )
  • 【Selenium】webdriver.ChromeOptions()官方文档参数
  • pytorch代码实现之动态卷积模块ODConv
  • 动态规划:子序列问题(C++)