openmeetings二次开发详解(本人都已实践成功).doc_第1页
openmeetings二次开发详解(本人都已实践成功).doc_第2页
openmeetings二次开发详解(本人都已实践成功).doc_第3页
openmeetings二次开发详解(本人都已实践成功).doc_第4页
openmeetings二次开发详解(本人都已实践成功).doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

VIP免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

openmeetingsopenmeetings 十万个如何十万个如何( (不断更新不断更新) ) 事先声明,我用的是最新的 openmeetings 源码(包括客户端与服务端),最新版本 openmeeting 是有多种风格 默认为蓝色 一.如何绕过登陆 找到 baseauthcheckLoginData.lzx,在第一个 oninit 加上 this.login() this.pressEnter = new LzDelegate(this, “login“); lz.Keys.callOnKeyCombo(this.pressEnter, “enter“); lz.Focus.setFocus(this.username,true); this.login(); 这样,一进入登陆界面就会自动登陆. 二.如何传参数给 openmeetings 如 http:/localhost:5080/openmeetings/index.jps?userName=土匪 so.addParam(“quality“, “high“); so.addParam(“id“, “lzapp“); so.addParam(“allowScriptAccess“, “always“); so.addParam(“scale“, “noscale“); so.addVariable(“yxUserName“,); so.addVariable(“yxUserPass“,); so.write(“flashcontent“); 以上 so.addVariable 是我加的,就是把传过来的用户名与密码加入到 openlaze 中,这里的 yxUserName 与 yxUserPass 在 openLaze 中是全局变量 三.如何把传过来的参数,即用户名与密码直接录入到输入框中,来达到真正意义 的跳转 找到 baseauthcheckLoginData.lzx, if (this.b2.visible) this.username.setAttribute(“text“,yxUserName); this.userpass.setAttribute(“text“,yxUserPass); this.b2.onclick.sendEvent(); else this.b3.onclick.sendEvent(); 在里面加上 this.username.setAttribute(“text“,yxUserName); this.userpass.setAttribute(“text“,yxUserPass); 四,如何在登陆后直接跳入到演讲界面 找到 basenavimainNavi.lzx 在最下面 我现在已经把 i=0 改为了 i=2,这样就直接进入到演讲之前的一个界面,接着我 们就是触发进入按钮就 OK 了 注意,还可以把 i 改成 i=1,i=3 找到 modulesconferenceconferenceroomListItem.lzx 加入了一个 name=“enter_name“,原来是没有 再把最前面方法的最后加入一句 enter_name.onclick.sendEvent(); ok,现在就可直接进入到演讲界面 openmeetingopenmeeting 安装另一篇安装另一篇 Red5 , 视频会议 GgNET 08 月 20th. 2008, 1:43am (一) 好了,开始吧。首先我们需要用到以下东东: 1. JDKJDK 1.51.5 或以上版本或以上版本 - 这个就不说了,以下所有东西都是基于它的。 2. Red5Red5 - 开源 Flash 服务器,用来替代 FCS/FMS,毕竟 License 还是有些贵 的,呵呵。这里有信息和下载 /red5 3. OpenMeetingsOpenMeetings - 开源视频会议系统,基于 OpenLaszlo 开发。这里有信息 和下载 /p/openmeetings/ 4. OpenLaszloOpenLaszlo - 开源的富客户端应用开发平台(有点长,呵呵,用它的话来 说是 the premier open-source platform for rich internet applications)。这里有信息和下载:/ 5. MySQLMySQL 或者其他数据库或者其他数据库 - 必须是 Hibernate 支持的数据库 6. SVNSVN - 著名的版本管理工具 Subversion,用来下载 OpenMeetings 的源代码 的。Windows 下推荐 TortoiseSVN,这里下载: / 。Liunx 就直接命令行吧,呵呵。喜欢用 Eclipse 的兄弟也可以用 Subclipse 插件 / 7. 没有第 7 个东西要下载了 好了上面是需要用到的项目,我们先来部署一次看看效果。下面是部署过程, 我们暂时不需要用到 Laszlo 和 SVN 1. 先装 JDK(注意要是 1.5.0 以上),这个到处都有教程,就不说了。注意装 完以后要设置 JAVA_HOME 到 JDK 路径。 2. 根据你的系统下载 red5 的安装包,然后傻瓜式安装 3. 从 OpenMeetings 下载一个已经打包好的应用 (/p/openmeetings/downloads/list ),解压到 Red5 的 webapps 里面,解压后目录应该是 xmlcrm(最新版本可能为 openmeetings) 4. 到解压后的 OpenMeetings 项目下 Install 目录中(新版本可能为 conf)按 照你自己的数据库来修改目录中的任意一个 xxx_hibernate.cfg.xml 文件并另 存为 hibernate.cfg.xml,我的是 MySQL 所以就直接把 mysql_hibernate.cfg.xml 文件改名然后把数据库地址用户名密码写上去就 OK 了。 5. 打开 config.xml 文件,看看端口啊,地址啊,有没有什么要修改的。 6. 启动 Red5 服务器。如果是在 Windows 下 Red5 设成了服务的,在 Windows 的 服务中重启。 7. 开浏览器输入地址 http:/localhost:5080/xmlcrm/Install (注意大小写; Install 根据版本也有可能为 conf;另外 5080 是默认端口,如果修改了就按照 你自己的弄)先进入安装界面,东西随便填。注意邮件服务器,如果你像我一 样没有邮件服务器的话,就不填,只是暂时只能由管理员来添加帐号而无法直 接注册,呵呵。然后其中要填入两个工具地址,就在页面上已经提供了下载了。 8. 配置完了点击 Send 按钮,然后去喝杯咖啡或者茶什么的,因为要 5-10 分钟。 。=。=# 9. 全部搞定访问 http:/localhost:5080/xmlcrm 就可以登陆了,你登陆的时 候会是管理员,可以在顶上选择 Manage 来进行管理。同时提供白板可以画画, 还可以共享桌面,呵呵。 先玩玩看看效果吧,晚点我再介绍修改。 (二) 看了效果后如果有兴趣,我们就可以开始着手修改 OpenMeetings 了。 要修改当然先是要拿到源代码了。我们先大致了解一下 OpenMeetings 的源代码 结构。OpenMeetings 分为两部分:一部分是客户端,由 OpenLaszlo 和一些 Flash 文件组成,负责生成最终的客户端 swf 文件;另一部分是服务器端,由 Java 代码编写而成。我们必须分别下载并编译这两个部分,注意这两个部分版 本必须一样。下面分别说明这两个部分的部署过程。 服务器端服务器端 1. 用 SVN 从这个地址 Check out 出代码 /svn/branches/dev/xmlcrm/java/ 2. 到 install 目录中(新版本可能为 conf)按照你自己的数据库来修改目录 中的任意一个 xxx_hibernate.cfg.xml 文件并另存为 hibernate.cfg.xml,我 的是 MySQL 所以就直接把 mysql_hibernate.cfg.xml 文件改名然后把数据库地 址用户名密码写上去就 OK 了。 3. 代码可以用 eclipse 直接 import,不过编译 OpenMeetings 推荐使用 ant, 项目已经提供了一个 build.xml 文件,直接在 eclipse 里面 Run as Ant 就可 以编译整个项目,编译结果将在项目下的 dist 目录下。(这里有个小问题,本 人下载的 r980 版本中的 build.xml 文件居然编译的时候没有包含编译 java 文 件,导致部署一直失败,解决方法只需要在最后一行的 depends=”clean, prepare, compile, hibernate”最后加一个 jar 就可以了,改为 depends=” clean, prepare, compile, hibernate, jar”) 4. 将编译完成的 dist 中的 openmeetings 文件夹复制到 red5 的 webapps 下, 重启 red5 服务器,服务器端部署完成。 (如果嫌部署太麻烦,可以将 build.xml 文件中这一行 value 的值改为你的 red5 的 webapps 如:,并将 这一行删掉或注释掉。这样每次运行 build.xml 文件的时候就可以直接部署到 red5 下了) 客户端客户端 1. 下载并安装 OpenLaszlo, 2. 用 SVN 从这个地址 Check out 出代码 /svn/branches/dev/laszlo/client/ 3. 代码也可以用 eclipse 直接 import,但编译需要使用 OpenLaszlo,这个以 后再说。 4. 复制刚才代码下 xmlcrm 下的 videoconference 文件夹到 OpenLaszlo 下, OpenLaszlo 目录/Server/lps- 4.0.9/(4.0.9 为我的版本号,根据服务器版 本不同而不同)Windows 默认安装是这个地址:C:/Program Files/Openlaszlo Server 4.0.9/Server/lps-4.0.9/videoconference/(其中 4.0.9 同上解) 5. 修改 videoconference/config.xml 文件,端口啊、地址啊都改成你自己的。 rtmphostlocal 标签中的内容是你的 red5 服务器安装位置。 数据库配置与测试数据库配置与测试 本来在上一篇里面写过一点点数据库配置,有兄弟在问,这里就再说下 1. 安装一种数据库,数据库的类型随便,只需要保证 hibernate 支持类型就行 了,这里可以看哪些支持 /80.html,不需要建立任 何数据库或库表,等下程序会帮你建立 2. 完成上面两步,注意服务器端的第 2 步,那里必须保证正确 3. 启动 red5 服务器 4. 服务器端安装 访问 http:/localhost:5080/openmeetings/Install ,程序会自动进入 Step 1 安装,上面框填入你的信息,中间框邮件服务器那一项如果没有可以留空, 下面框填入 SWFTool 和 MagicImage 两个必须的工具的安装后的路径,如果没有 安装这两个软件的话可以点击输入框下面的连接去下载,安装完成后再填入。 然后选择 Senden,之后进展会很慢不要关闭页面也不要以为死机了,可以做些 别的事情例如和身边的美女同事聊聊天什么的,大约 5-10 分钟后安装完成,此 时数据库中已经多了一个库了。直接访问 http:/localhost:5080/openmeetings 应该可以看见输出结果,但由于其中的 swf 是事先编译好的,不是我们编译出来的,所以我们还需要学习下面的客户 端安装 5. 客户端安装 (1) Proxied 方法 现在保证 red5 服务器中刚才部署的服务器端在运行,然后启动 OpenLaszlo 服 务器,并在浏览器中输入:http:/localhost:8080/lps- 4.0.9/videoconference/maindebug.lzx?lzr=swf8 和 http:/localhost:8080/lps-4.0.9/videoconference/main.lzx?lzr=swf8 即 可看到结果(4.0.9 根据具体版本号变更,如果 OpenLaszlo 不在本机,请修改 localhost 为 OpenLaszlo 服务器地址 (2) SOLO 方法 还可以使用 SOLO 模式编译(如何 SOLO 模式编译可以参看我另外一篇文章 OpenLaszlo 下的 Proxied 和 SOLO 两种编译方法 )在客户端目录中生成 swf 文 件,然后将客户端目录中的 main.lzx.lzr=swf8.swf 复制到服务器端部署好的 目录中覆盖原来的同名 swf 文件(即red5 路径/webapps/openmeetings), 然后仅启动 red5 服务器,访问 http:/localhost:5080/openmeetings 同样可 以看见结果 关于关于 LaszloLaszlo 开发工具开发工具 Laszlo 的开发工具网上大多数都是介绍使用 Eclipse 插件 IDE for Laszlo 作 为开发工具,但此工具在 2006 年 12 月的时候就因为太不活跃而被 eclipse 留 档停止了。现在比较推荐的是 Spket,/ ,它是免费软 件,如果要用于商业目的则需要付费。当然你也可以选择直接使用文本编辑器 开发。 好了,差不多了,现在代码也有了,部署也通过了,想改什么都行了,嘿嘿。 俺先去摆弄两下 iTouch,下次再来说修改和编译_。 (三) 要修改代码,其实说到前面两步就差不多了,因为接下来的事情,就是读懂和 理解代码,然后按照自己的需求来修改,各人需求不同,自然修改的方案也有 很多不同。 不过介于 OpenMeetings 客户端的开发语言为 OpenLaszlo,相信很多人都从来 没有接触过,这里我就大致的说下。 学习简单的学习简单的 OpenLaszloOpenLaszlo 语法语法 (比较懒的兄弟可以跳过这节直接转到下面的“懒人视频聊天室”,呵呵) 推荐大家去看一看 OpenLaszlo Explorer 中的 Laszlo in 10 Minutes,启动 Laszlo 服务器,然后访问 :8080/lps-/laszlo- explorer/index.jsp 就可以看见(Windows 下的安装后直接双击桌面图标就能 够自动触发浏览器访问此地址)。这个是给大家对于 OpenLaszlo 的语法进行一 个简单的介绍。另外,点击 Documentation 下面的 LZX Reference 还能够看到 更详细的每个标签和指令的介绍。这些应该都会在修改代码过程中有所帮助。 我这里介绍几个修改代码时可能会用的多的: 1. 类的继承、定义与使用 2. 事件与触发 3. 基本元素 view, text 4. 数据绑定(dataset) 看这些相信最多花费你 1-2 个小时的时间,然后你就可以开始修改了。 在调式模式下启动在调式模式下启动 OpenMeetingsOpenMeetings 首先说下我修改时的调试方法,我是在后台启动部署了 OpenMeetings 服务器端 的 Red5 和部署了客户端的 OpenLaszlo 两个服务器,然后访问 :8080/lps-/videoconference/main.lzx?lzr=swf8 ,即可编译并启动 OpenMeetings 客户端 然而,在 OpenMeetings 客户端的根路径下其实有两个主文件,一个 main.lzx 和 maindebug.lzx,这两个都可以用来整合编译并启动 OpenMeetings 客户端, 但 maindebug.lzx 是带调试界面的,更便于修改用,我们可以把访问地址改为 :8080/lps- /videoconference/maindebug.lzx?lzr=swf8 ,这样每次运行都会有一 个调试框,里面会显示很多客户端本身就带有的调试信息。当然你也可以自己 在代码中写入调试信息,Debug.write(xxxx);运行时即会将 xxxx 的内容显示在 调试框中。 OpenLaszlo 下的下的 Proxied 和和 SOLO 两种两种编译编译方法方法 时间不多,随便说一下 Laszlo 有两种编译方式: 1. 通过 OpenLaszlo Server 进行编译 2. 一次性将 lzx 文件编译成 swf 文件 这两种方法各有好处,下面分别介绍,并简单的介绍了下 SOLO 模式的几种编译方法 OpenLaszlo Server 方式(代理方式)方式(代理方式) 这种相信现在大家都在用,启动 OpenLaszlo 服务器,然后在浏览器中输入 lzx 文件全路径,不需要任何 参数或设置,即会出现结果。 代理方式好处是测试简单方便,坏处则是如果你要部署的话,需要在部署服务器上另起一个 OpenLaszlo 服务器端。 下面是官方文档中对于此方式的图解: swf 文件方式(文件方式(SOLO 方式)方式) SOLO 的全称是 Standalone Open Laszlo Output,即根据 lzx 生成 swf 文件,编译完成以后,每次 只需要 swf 即可运行程序,而不再需要 OpenLaszlo 服务器了。 这样的好处是显而易见的,部署非常方便,少一个服务器需要启动、配置和维护,可以在任何的环境下执 行,你甚至可以把它上传到你的个人免费静态空间中。 下面是官方文档中对于此方式的图解: SOLO 的编译方法的编译方法 网上很多朋友询问如何生成 swf 文件,这里有三种方式可以生成: 1. 用命令行进行编译 cd /bin lzc -runtime=swf8 然后就可以在你的 lzx 文件路径下发现一个 swf 文件 (如果编译时出现 Out of memeory 异常,则修改 lzc.bat 文件,在 java 后面加上参数-Xmx512m 再 执行;如果编译时始终出现参数错误,可能是命令行系统错误的将=号作为参数分割了,尝试将带等号的 参数两边用双引号括起来) 2. 用浏览器输入带参数地址编译 http:/?lzr=swf8 将倒数第二个 true 改为 false,部署以后再到前台注册,现在已经不会提示 Invalid EMail 了 2.2. 修改界面左上角网站名称和连接修改界面左上角网站名称和连接 修改 config.xml 文件中: xxx为网站名称(可以为中文) 、标签为自己的网站 URL 3.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.4. 去掉登录框上不需要的部分去掉登录框上不需要的部分 登陆框下面的语言选择,颜色选择和带宽我都去掉了,方法如下: auth/checkLoginData.lzx 文件,其中每个 labeltext 标签和其下缩进的一个 表单标签(combobox /customedittext)一起代表一行的输入框和其前面的名称, 将不需要的都在标签最后加入 visible=”false”属性(我去掉了最后三项)。 同时注意剩余的 labeltext 和表单标签中的 y 值为其所在的纵向坐标,需要修 改之让其匹配界面应在的位置。可以参考原删除的标签的 y 位置。最后的 simplelabelbutton 就不要改了,因为是按照相对高度定位的。 最后,修改整个窗体的高度,顶部的 class 标签最后的 height 属性,改为应有 的值,大概是每删除一个表单标签-30,例如删除了 3 项输入框,就是原有高度 260 - (3 x 30) = 170。 5.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.subviews0.onclick.sendEvent();改为 else this._menuRef.subviews1.onclick.sendEvent();这样进入后就会自动进入 “私人会议”列表界面 6.6. 去掉房间列表页面中右侧的聊天窗口去掉房间列表页面中右侧的聊天窗口 进入房间列表页面以后,可以看见右侧有一个聊天窗口,如果你希望屏蔽他们 的话。 根据需要修改/xmlcrm/content/meetings/publicmeetings.lzx(公共房间列表) /xmlcrm/content /meetings/privatemeetings.lzx(私人房间列表),删除 一行 即可 7.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.8. 屏蔽右上角菜单,仅剩下屏蔽右上角菜单,仅剩下 LogoutLogout 登出登出 登陆进去以后,屏幕右上角总是显示三项:用户、退出、报告错误。如果不希 望有用户和报告错误两项的话,就按照下面的做。 /xmlcrm/navi/mainnavi.lzx 文件,找到 helpandbugs 类,将其中 name=” btn1和 name=”btn2的两个 view 标签及其包含内容全部删去即可 9.9. 修改未翻译的文字修改未翻译的文字 即使选择了简体中文,系统依然会有很多地方的显示是英文的,我们需要手工 的将部分未翻译过来的单词自己翻译一下,有三种办法: (1) 在服务器端代码(不是客户端代码)中找到 webappopenmeetingslanguages,里面存的是所有的国际化文件, 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.10. 删除进入房间后顶部菜单中不需要的功能删除进入房间后顶部菜单中不需要的功能 进入房间后,顶部一排有很多功能菜单,申请主持、文件上传、投票等等,这 些功能对于一个纯粹的聊天室来说,有些多余,而且这些功能全都可以在其他 地方实现,所以你可以根据需要将顶上的部分功能菜单给删除。 /xmlcrm/content/conference/conferencemenubar.lzx 文件中找到 conferencemenubar 类,其下每一个 labelmenu 标签代表一个菜单项,顺序为 从左至右,将不需要的菜单项删去或注释掉即可。再在上面一点找到一堆 command 标签,根据快捷键将不要的也删除或屏蔽,以避免有人使用快捷键调 用功能。 而房间上中的按钮和显示则在文件 /conference/moderation/moderationpanel.lzx 的 moderationpanel 类中,同 样将不需要的屏蔽即可 11.11. 国际化房间里主要面板的标题国际化房间里主要面板的标题 进入房间后,发现不管怎么修改语言数据,那三块板子顶上的标题就是不变, 这是因为这三个标题没有绑定国际化的原因。 /xmlcrm/content/conference/conference.lzx 中,找到 videoboard 类,删去 title 属性,加上 labelid=”313; 找到 whiteboardpanel 类,删去 title 属性,加上 labelid=”315; 找到 filespanel 类,删去 title 属性,加上 labelid=”314 12.12. 删除房间里左下角框中不需要的功能删除房间里左下角框中不需要的功能 房间里左下角框里面是有聊天、文件和成员三个选项的,文件用来控制白板, 还有些用,而投票在视频聊天室里面恐怕用不上,所以去掉。 /conference/tabbar/conferencecontainertab.lzx 中,找到 conferencecontainertab 类,3 个 openmeetingsTabButton 标签每个代表一个 tab 按钮,屏蔽不需要的 13.13. 修改房间人数限制修改房间人数限制 有些兄弟认为 4 人房间的聊天室太无聊。不过好像也是。又不是打麻 将。所以。 /xmlcrm/conference/roomlistItem.lzx 文件中一行,修改 value 的值即是修改 最大人数。最大人数修改以后展示的时候界面可能有些乱,这个就你自己去调 整了,因为我做的时候没有这个需求,所以没有测试过实际效果,呵呵 客户端文件结构简单介绍客户端文件结构简单介绍 这里只介绍几个对界面修改比较有用的文件: /config.xml 一些全局参数定义 /main.lzx 主文件,用来整合其他文件 /maindebug.lzx 带 debug 的主文件 /xmlcrm/hibernate/rtmphib.lzx 定义并实例化 hibrtmpconnection 类,负责 主要流程调度及部分默认配置,比较重要比较重要 /xmlcrm/hibernate/netremotecallhib.lzx 定义 netremotecallhib 类,继承 于 netremotecall 类,负责调用后台服务器端 Java 方法,使用很多使用很多 /xmlcrm/content/meetings/publicmeetings.lzx 定义公共会议列表相关类 /xmlcrm/content/meetings/privatemeetings.lzx 定义私人会议列表相关类 /xmlcrm/conference/roomlistItem.lzx 定义 roomlistItem 类,代表会议房间 列表页面中的一个房间展示 /xmlcrm/auth/checkLoginData.lzx 定义 checkLoginData 类,负责登陆框的 显示 /xmlcrm/navi/mainnavi.lzx 定义登录后的主界面展示相关类 /xmlcrm/content/conference/conferencemenubar.lzx 定义房间左上角菜单 /conference/moderation/moderationpanel.lzx 定义房间上中的显示和按钮 /xmlcrm/content/conference/conference.lzx 定义房间主要的三个面板类 /conference/tabbar/conferencecontainertab.lzx 定义房间左下角聊天窗口 中的内容 /conference/video/basevideoobject.lzx 视频对象的基类,定义了视频图像 的外框显示 /conference/video/videoobjectbroadcast.lzx 视频播放类,定义了会议房间 中的本人的本人的 视频显示 /conference/video/videoobjectplayBroadcast.lzx 视频播放类,定义了会议 房间中的其他人的其他人的 视频显示 /conference/video/videocontainer.lzx 视频容器类,定义了房间内左上角框 里的所有视频对象的展示 /conference/whiteboard/ 白板相关类 /conference/tabcontent/chat 房间内的聊天窗口相关类 /conference/tabcontent/files 房间内的文件窗口相关类 部署部署 要部署的时候建议把整个客户端生成一个 swf 文件然后复制到服务器端(即使 用 SOLO 方式编译,如果不知道如何编译,参考我的另一篇文章 OpenLaszlo 下 的 Proxied 和 SOLO 两种编译方法 ),这样服务器端部署的时候就不需要再开 启 OpenLaszlo 服务器了。另外注意,将修改过的 config.xml 文件和 swf 文件 一起拷贝到服务器去,否则有些修改又没了,呵呵。(如果 swf 文件和 red5 是 部署在同一台机器上的,建议你把 config.xml 文件中 rtmphostlocal 留空,这 样可以省去很多麻烦) 拷贝过去后先修改 index.jsp 文件中 SWFObject 的第一个参数,使之指向你的 swf 文件。然后访问 http:/localhost:5080/openmeetings/ 即可看到效果, 部署完成。 然后,然后。如果你在自己的机器上部署了,希望外网的朋友来和你一起 测试或使用的话,注意要配置路由上用虚拟主机端口映射,开放 1935、 8088、5080 三个端口指向自己(当然也可以直接将自己设为 DMZ。如果感觉 自己够安全的话。),如果是非 SOLO 方式还要为 Laszlo 服务器开放 8080; 另外,机器上如果有 Kapersky 之类的话需要关闭,否则会拦截外网的端口访问。 写在最后写在最后 好了,东西写的差不多了,虽然我自己修改这个所做的远不止写的这些,但我 想我也只能写到这里了。 我写这些东西的目的只是希望大家能够得到一点启发,每个人需求都不一样, 我相信根据我的修改肯定达不到你的要求,但相信你通过边做边学习这些之后, 完成后面的事情应该不是什么难事了。 我平时少上 IM,我的邮箱是 fallen_ ,有兴趣的朋友可以 mail 我交流,呵呵 (四) 本来是没什么东西好写的了,不过这几天的持续改造中又出现了各种让人比较 头疼的问题,准备将这篇文章作为持续更新,遇到比较疑难的问题我会一直发 上来。 1.1. 改进摄像头改进摄像头 这不知道是否算的上个 bug,google 了一下,中文网页没见人提过,英文的话。 。俺英文比较差看不太懂,呵呵。 现象是这样的,进入房间后显示的视频,会根据不同的摄像头被切掉一部分, 有的摄像头只切掉边缘一小块,而有的摄像头甚至只显示了原面积的 1/9,平 时可以看见一个身体的,这里却只能看见一只眼睛。 由于我的需求是需要让不同的视频框有不同的大小,俺花了一个下午的功夫才 搞定摄像头视野被裁切的问题,下面是修改的部分,大家可以自己修改试试。 /conference/remote/devvideoview.lzx 文件中,在类 devvideoview 中增加两 条 attribute: 修改中: vid._width = this.width; vid._height = this.height; 改为: vid._width = this.myWidthmyWidth ; vid._height = this.myHeightmyHeight ; 修改中: if (!this._clipinitdone) this.width = w; return; 改为: if (!this._clipinitdone) this.width = 576576 ; this.myWidththis.myWidth = = w;w; return; 修改中: if (!this._clipinitdone) this.height = h; return; 改为: if (!this._clipinitdone) this.height = 432432 ; this.myHeightthis.myHeight = = h;h; return; 2.2. 修复房间用户数量不增加问题修复房间用户数量不增加问题 我的版本 r988 有这个问题,感觉这也算一个 bug。 问题的现象是,用户加入房间后房间的用户数量始终为 0,这样主要是房间人 数上限就没有起到作用了。后来看了下程序,发现是客户端调用 rooms_id 不正 确导致的,只需要修改/xmlcrm/content/conference/roomlistItem.lzx 文件, 将所有的 this.obj.rooms_id 全都改为 this.obj.room.rooms_id 即可解决问 题。 3.3. 服务器端代码嵌入中文,服务器端代码嵌入中文,antant 提示中文警告的问题提示中文警告的问题 这个其实不算是 openmeetings 的问题,不过开始还是让我头痛了一把。由于 ant 编译的默认编码是根据系统的编码来确定的,因此如果 java 文件存成 utf-8 而系统编码又是 GBK(win2000)或者 GB18030(winxp)里面又含有中文,那 么 ant 编译的时候就会提示警告。如果只是注释是中文,则警告也不会有什么 影响,但是如果有字符串里面写着中文,就出问题了。 解决方法是查找 build.xml 文件中所有的 javac 标签,为其加上属性 encoding=”UTF-8即可解决问题。 4.4. RED5RED5 服务器服务器 0.70.7 以上版本无法配置针对项目的以上版本无法配置针对项目的 loglog 的问题的问题 这个问题是由于 red5 服务器最新版由 log4j 改为使用 logback 导致的。如果使 用 red5 0.63 或以下版本,原来的 openmeetings 中的配置是没有问题的,如果 使用 0.7 或以上版本,则 openmeetings 需要修改才能使之按照项目配置正常输 出 log。方法如下: (1) 在 openmeetings 下的 lib/red5 中删除以下 jar 包,这里注意,如果项目 中有其他的 log4j-xxx.jar 也要删除 slf4j-api-xxx.jar log4j-xxx.jar slf4j-log4j12-xxx.jar jcl104-over-slf4j-xxx.jar slf4j-simple.jar slf4j-simple-xxx.jar commons-logging-xxx.jar (2) 在 red5 安装路径下的 lib 中找到如下 jar 包: slf4j-api-xxx.jar logback-core-xxx.jar logback-classic-xxx.jar log4j-over-slf4j-xxx.jar jcl104-over-slf4j-xxx.jar 复制到 openmeetings 下的 lib/red5 中并将其加入 eclipse 的 classpath (3) 在 openmeetings 项目中 webapps/openmeetings/WEB-INF/web.xml 文件中 删除以下段落 log4jConfigLocation /WEB-INF/perties 以及以下段落 org.springframework.web.util.Log4jConfigListener (4) 删除 openmeetings 项目中所有的 perties 和 log4j.xml,应该 是有两个 webapps/openmeetings/WEB-INF/perties 和 src/app/perties (5) 最后在 src/app/添加 logback.xml 文件,内容如下: %dMM-dd HH:mm:ss.SSS %-5level %logger36 - %msg%n (5) 这样不需要修改代码,重新启动项目就可以看到 logback 的输出了,平时 的使用和 log4j 一摸一样,同样是导入 org.apache.log4j.Logger 类进行操作, 因为 log4j-over-slf4j.jar 包中的类覆盖了原 log4j 的类,呵呵 (6) 使用 logback 还有一个最大的好处,就是 logback 提供了 eclipse 的插件, 可以直接将 red5 的内容输出到 eclipse 的控制台中进行输出,非常方便。插件 下载地址在: http:/logback.qos.ch/consolePlugin.html 提醒一下。记得一定要配置插件的 filter 哦。不然会被 log 弄爆的, 哈哈 好了,to be continue openmeeting 研究笔记研究笔记 BY K20101010, ON 十一月 17TH, 2010 QQ:283796665 1. svn checkout /svn/trunk/ openmeetings- read-only /svn/trunk/ 2. 运行 build_red5webapp.xml 进行布署 生成的项目在 dist 目录下 3. config.xml D:javaopenmeetingsserverred5webappsopenmeetingsconfig.xml =D:javaopenmeetingsdistred5webappsopenmeetingsconfig.xml 4. main.swf8.swf 是由 webcontentopenmeetings 里的 main.lzx 文件编译得到 5. 去掉邮件激活方法,更改 src/app/org/openmeetings/app/data/user/Usermanagements.java 的 registerUserInit 方法里的 if (sendConfirmation) status = 0; 将状态改成 1.即 status=1; 在 registerUser 方法里将 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 LinkedList(), phone, baseURL, sendConfirmation,”“,”“,”

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论