网络视频会议 OpenMeetings 介绍 运行 开发

2024-05-12 04:58

本文主要是介绍网络视频会议 OpenMeetings 介绍 运行 开发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

网络视频会议 OpenMeetings 介绍 运行 开发

  • 概述
  • 功能
  • 环境支持
  • 源码文件
    • 运行安装
  • 二次开发修改
    • 1. 去除邮件注册
    • 2. 修改界面左上角网站名称和连接
    • 3. 修改登录框,设置默认语言为中文
    • 4. 去掉登录框上不需要的部分
    • 5. 修改登入后界面,直接到私人房间界面
    • 6. 去掉房间列表页面中右侧的聊天窗口
    • 7. 屏蔽顶部菜单
    • 8. 屏蔽右上角菜单,仅留下Logout登出
    • 9. 修改未翻译的文字
    • 10. 删除进入房间后顶部菜单中不需要的功能
    • 11. 国际化房间里主要面板的标题
    • 12. 删除房间里左下角框中不需要的功能
    • 13. 修改房间人数限制
  • 小结

概述

    OpenMeeting是一个开源的视频会议、即时消息、白板、协作文档编辑为一体的软件。与一般通常会议软件相比,特别之处是能够在会议过程中做PPT的演示,这一功能是由OpenOffice的文档转换能力和提供Java远程访问的能力来支持。

功能

  • 音像会议
  • 会议记录和屏幕共享(录制会话包含的内容,可选择共享屏幕区域及质量,并可以作为视频文件下载
    文件资源管理器)
  • 多重白板和聊天
  • 用户和房间管理
  • 用综合日历计划会议
  • 问卷调查和投票

环境支持

  • JDK 8
  • Mysql
  • Apache Maven(3.5.0或更高版本)
  • ImageMagick:提供图像上传功能并将图片导入到白板
  • GhostScript:提供把pdf文件上传并导入到白板。
  • FFMpeg:提供启用录制功能和将上传的.flv/.mp4格式的文件导入到白板
  • LibreOffice:提供让所有Office文档能够导入到白板
  • SoX:协助Openmeetings处理音频文件

源码文件

    Git地址:https://github.com/apache/openmeetings
    官网地址:https://openmeetings.apache.org/
在这里插入图片描述
   最新版本代码下载 (5.0.0-M3) 下载地址

运行安装

   运行项目代码后,访问默认端口地址,进入安装页面:
   http://localhost:5080/openmeetings/install
在这里插入图片描述

   选择数据库类型,并测试链接
在这里插入图片描述

   设置管理员账号信息
在这里插入图片描述

   配置邮件服务器信息
在这里插入图片描述

   配置不同功能插件(插件介绍已在上文描述)
在这里插入图片描述

   点击Finish,进入安装部署
在这里插入图片描述

   完成安装后将在数据库创建33张数据表单
在这里插入图片描述

   访问默认登录页面
   http://localhost:5080/openmeetings/signin
在这里插入图片描述

   进入管理员页面
在这里插入图片描述

   进入公共会议室,按照需求参与会议
在这里插入图片描述

二次开发修改

1. 去除邮件注册

   如上文介绍OpenMeetings安装的时候需要设置一个邮件服务器,如果没有邮件服务器则前台是无法注册的。现在我们就把这个烦人的邮件注册去掉
服务器端文件中,找到org.xmlcrm.app.data.user.Usermanagement类,找到下面一行
Long user_id = this.registerUserInit(3, 1, 0, 1, login, Userpass,lastname, firstname, email, age, street, additionalname,fax, zip, states_id, town, language_id, true, new LinkedHashMap());
将倒数第二个true改为false,部署以后再到前台注册,现在已经不会提示Invalid EMail了

2. 修改界面左上角网站名称和连接

   修改config.xml文件中:

    <currentappname>testName</currentappname> 网站名称<currentappnameurl>testURL<currentappnamebugurl> 网站URL

3. 修改登录框,设置默认语言为中文

   每次登陆以后默认都是英文的,要选择一下语言而且登陆以后才会变成中文,我们可以让它一开始就是中文。修改xmlcrm/hibernate/rtmphib.lzx文件这一句,value由1改为9(9是chinese simplified在语言那个下拉菜单的顺序)。修改xmlcrm/auth/checkLoginData.lzx文件combox name="language"标签下的handler name="oninit"事件内容,两行this.selectItemAt(0);全都改为this.selectItemAt(8);,这样系统会在初始状态下默认选择简体中文(8=9-1)。这样重新编译,界面就初始为简体中文。

4. 去掉登录框上不需要的部分

   登陆框下面的语言选择,颜色选择和带宽我都去掉了,方法如下:
auth/checkLoginData.lzx文件,其中每个labeltext标签和其下缩进的一个表单标签(combobox/customedittext)一起代表一行的输入框和其前面的名称,将不需要的都在标签最后加入 visible="false"属性。同时注意剩余的labeltext和表单标签中的y值为其所在的纵向坐标,需要修改之让其匹配界面应在的位置。可以参考原删除的标签的y位置。最后的simplelabelbutton就不要改了,因为是按照相对高度定位的。 最后修改整个窗体的高度,顶部的class标签最后的height属性,改为应有的值,大概是每删除一个表单标签-30,例如删除了3项输入框,就是原有高度260 - (3 x 30) = 170。

5. 修改登入后界面,直接到私人房间界面

   对于一个聊天室,登陆以后其实直接到房间列表就够了,/xmlcrm/navi/mainnavi.lzx文件,找到mainnavi类,最后一个handler name=“oninit”,修改代码行if (i = = 0) t1.onclick.sendEvent();中间if条件为i==2。这样进入后就会自动进入“会议”菜单
然后找到mainmenumeetingsitem类,下面的handler name=“onclick”,最后一行else this._menuRef.subviews[0].onclick.sendEvent();改为else this._menuRef.subviews[1].onclick.sendEvent();这样进入后就会自动进入“私人会议”列表界面

6. 去掉房间列表页面中右侧的聊天窗口

   进入房间列表页面以后,可以看见右侧有一个聊天窗口,根据需要修改/xmlcrm/content/meetings/publicmeetings.lzx(公共房间列表)/xmlcrm/content/meetings/privatemeetings.lzx(私人房间列表),删除一行即可

7. 屏蔽顶部菜单

   顶部菜单可以进行一些操作,但对于一个聊天室,这些操作其实有些多余,下面是删除办法。
/xmlcrm/navi/mainnavi.lzx文件,找到mainnavi类,先在其中找到第一个view标签(就在紧接一堆attribute下面,不含有name属性的那个),然后为其加上name属性name=“navibar”。然后还是mainnavi类中,找到最后一个handler name=“oninit”,在Debug.write("this: ",this);后添加代码:

            if (value.length == 4) {this.navibar.setAttribute("visibility", "hidden");this.itemlist.setAttribute("visibility", "hidden");this.subitemlist.setAttribute("visibility", "hidden");}

   这样,当管理员登陆的时候看到的还是原来的界面。普通用户登陆则看不到顶部菜单。如果只希望屏蔽一级菜单,而希望留下“公共会议”和“私人会议”菜单,则不要第三行this.subitemlist.setAttribute(“visibility”, “hidden”);

8. 屏蔽右上角菜单,仅留下Logout登出

   登陆进去以后,屏幕右上角总是显示三项:用户、退出、反馈错误。如果不希望有用户和报告错误两项的话,就按照下面的做。
/xmlcrm/navi/mainnavi.lzx文件,找到helpandbugs类,将其中name="btn1"和name="btn2"的两个view标签及其包含内容全部删去即可

9. 修改未翻译的文字

   即使选择了简体中文,系统依然会有很多地方的显示是英文的,我们需要手工的将部分未翻译过来的单词自己翻译一下,有三种办法:
(1) 在服务器端代码(不是客户端代码)中找到webapp\openmeetings\languages\,里面存的是所有的国际化文件,english.xml为英语,chinese simplified.xml为中文,用文本编辑器打开以后可以按照你自己的希望对不满意的翻译进行修改。修改以后需要用管理员帐号登陆,然后在【管理】-【Language-Editor】中Import修改后的xml文件到chinese simplified。
(2) 用管理员帐号登陆,然后在【管理】-【Language-Editor】可以直接对数据库中的语言进行翻译,比较方便。
(3) 直接访问数据库表fieldlanguagesvalues,用select * from fieldlanguagesvalues where language_id = 9即可查看所有的简体中文国际化记录,直接修改value的值也能达到同样的结果,用数据库的好处是查找比较方便,呵呵
另外还有部分语言是硬写在代码里的,这些只需要对整个项目搜索那段英文再修改为中文即可,例如:/conference/popups/changedevice.lzx 中Do not ask again改为中文“下次不再提示”

10. 删除进入房间后顶部菜单中不需要的功能

   进入房间后,顶部一排有很多功能菜单,申请主持、文件上传、投票等等,这些功能对于一个纯粹的聊天室来说,有些多余,而且这些功能全都可以在其他地方实现,所以你可以根据需要将顶上的部分功能菜单给删除。
/xmlcrm/content/conference/conferencemenubar.lzx文件中找到conferencemenubar类,其下每一个labelmenu标签代表一个菜单项,顺序为从左至右,将不需要的菜单项删去或注释掉即可。再在上面一点找到一堆command标签,根据快捷键将不要的也删除或屏蔽,以避免有人使用快捷键调用功能。
而房间上中的按钮和显示则在文件/conference/moderation/moderationpanel.lzx的moderationpanel类中,同样将不需要的屏蔽即可

11. 国际化房间里主要面板的标题

   进入房间后,发现不管怎么修改语言数据,那三块板子顶上的标题就是不变,这是因为这三个标题没有绑定国际化的原因。
/xmlcrm/content/conference/conference.lzx中,找到videoboard类,删去title属性,加上labelid=“313”;
找到whiteboardpanel类,删去title属性,加上labelid=“315”;
找到filespanel类,删去title属性,加上labelid=“314”

12. 删除房间里左下角框中不需要的功能

   房间里左下角框里面是有聊天、文件和成员三个选项的,文件用来控制白板,还有些用,而投票在***室里面恐怕用不上,所以去掉。
/conference/tabbar/conferencecontainertab.lzx中,找到conferencecontainertab类,3个openmeetingsTabButton标签每个代表一个tab按钮,屏蔽不需要的

13. 修改房间人数限制

   会议室上限人数从下方地址修改
/xmlcrm/conference/roomlistItem.lzx文件中一行,修改value的值为人数上限

小结

     网上关于OpenMeetings项目的开发并不是很多,所以我这里也整理了一些网上的资料出来,帮助大家一同研究,荣幸与您分享~

这篇关于网络视频会议 OpenMeetings 介绍 运行 开发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/981660

相关文章

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

基于Python开发PPTX压缩工具

《基于Python开发PPTX压缩工具》在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,不便于传输和存储,所以本文将使用Python开发一个PPTX压缩工具,需要的可以了解下... 目录引言全部代码环境准备代码结构代码实现运行结果引言在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,

通过prometheus监控Tomcat运行状态的操作流程

《通过prometheus监控Tomcat运行状态的操作流程》文章介绍了如何安装和配置Tomcat,并使用Prometheus和TomcatExporter来监控Tomcat的运行状态,文章详细讲解了... 目录Tomcat安装配置以及prometheus监控Tomcat一. 安装并配置tomcat1、安装

mysqld_multi在Linux服务器上运行多个MySQL实例

《mysqld_multi在Linux服务器上运行多个MySQL实例》在Linux系统上使用mysqld_multi来启动和管理多个MySQL实例是一种常见的做法,这种方式允许你在同一台机器上运行多个... 目录1. 安装mysql2. 配置文件示例配置文件3. 创建数据目录4. 启动和管理实例启动所有实例

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

IDEA运行spring项目时,控制台未出现的解决方案

《IDEA运行spring项目时,控制台未出现的解决方案》文章总结了在使用IDEA运行代码时,控制台未出现的问题和解决方案,问题可能是由于点击图标或重启IDEA后控制台仍未显示,解决方案提供了解决方法... 目录问题分析解决方案总结问题js使用IDEA,点击运行按钮,运行结束,但控制台未出现http://

解决Spring运行时报错:Consider defining a bean of type ‘xxx.xxx.xxx.Xxx‘ in your configuration

《解决Spring运行时报错:Considerdefiningabeanoftype‘xxx.xxx.xxx.Xxx‘inyourconfiguration》该文章主要讲述了在使用S... 目录问题分析解决方案总结问题Description:Parameter 0 of constructor in x

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb