openmeetings二次开发详解本人都已实践成功_第1页
openmeetings二次开发详解本人都已实践成功_第2页
openmeetings二次开发详解本人都已实践成功_第3页
openmeetings二次开发详解本人都已实践成功_第4页
openmeetings二次开发详解本人都已实践成功_第5页
免费预览已结束,剩余21页可下载查看

下载本文档

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

文档简介

1、openmeetings 十万个如何(不断更新)事先声明,我用的是最新的 openmeetings 源码(包括客户端与服务端),最新版本openmeeting 是有多种风格默认为蓝色一.如何绕过登陆找至 UbaseauthcheckLoginData.lzx,在第一个 oninit 力口上 this.login()this.pressEnter=newLzDelegate(this,login);lz.Keys.callOnKeyCombo(this.pressEnter,enter);lz.Focus.setFocus(this.username,true);this.login();这样,

2、一进入登陆界面就会自动登陆.二.如何传参数给 openmeetings如 http:/localhost:5080/openmeetings/index.jps?userName=匪&pwd=123可以修改 index.jsp,在 openmeetingsforjava 的源码找至 U 它varso=newSWFObject(main.lzx.swf8.swf,lzapp,100%,100%,8,#ffffff);so.addParam(quality,high);so.addParam(id,lzapp);so.addParam(allowScriptAccess,always);s

3、o.addParam(scale,noscale);so.addVariable(yxUserName,);so.addVariable(yxUserPass,);so.write(flashcontent);以上 so.addVariable 是我加的,就是把传过来的用户名与密码加入到 openlaze中,这里的 yxUserNamefyxUserPass 在openLaze 中是全局变量三.如何把传过来的参数,即用户名与密码直接录入到输入框中,来达到真正意义的跳转找至 UbaseauthcheckLoginData.lzx,if(this.b2.visible)this.username.

4、setAttribute(text”,yxUserName);this.userpass.setAttribute(text”,yxUserPass);this.b2.onclick.sendEvent();elsethis.b3.onclick.sendEvent();在里面加上this.username.setAttribute(text,yxUserName);this.userpass.setAttribute(text,yxUserPass);四,如何在登陆后直接跳入到演讲界面找至 UbasenavimainNavi.lzx在最下面!CDATAvarvalue=this.naviOb

5、ject;for(vari=0;i我现在已经把 i=0 改为了 i=2,这样就直接进入到演讲之前的一个界面, 接着我们就是触发进入按钮就 OK 了注意,还可以把 i 改成 i=1,i=3找至 UmodulesconferenceconferenceroomListItem.lzx加入了一个 name=enter_name,原来是没有再把最前面方法的最后加入一句enter_name.onclick.sendEvent();ok,现在就可直接进入到演讲界面openmeeting 安装另一篇Red5,视频会议 GgNED8 月 20th.2008,1:43am(一)好了,开始吧。首先我们需要用到以下

6、东东:1. JDK1.5 或以上版本-这个就不说了,以下所有东西都是基于它的。2. Red5-开源 Flash 服务器,用来替代 FCS/FMS 毕竟 License 还是有些贵的,呵呵。这里有信息和下载 http:/red53. OpenMeetings-开源视频会议系统,基于 OpenLaszlo 开发。这里有信息和下载http:/code.google.Com/p/openmeetings/4. OpenLaszlo-开源的富客户端应用开发平台(有点长,呵呵,用它的话来说是 thepremieropen-sourceplatformforrichintern

7、etapplications)。这里有信息和下载:/5. MySQ 域者其他数据库-必须是 Hibernate 支持的数据库6. SVN-著名的版本管理工具 Subversion,用来下载 OpenMeetings 的源代码的。Windows 下推荐 TortoiseSVN,这里下载:/。Liunx 就直接命令行吧,呵呵。喜欢用 Eclipse 的兄弟也可以用 Subclipse 插件 http:/7. 没有第 7 个东西要下载了好了上面是需要用到的项

8、目,我们先来部署一次看看效果。下面是部署过程,我们暂时不需要用到 Laszlo 和 SVN1 .先装 JDK(注意要是 1.5.0 以上),这个到处都有教程,就不说了。注意装完以后要设置 JAVA_HOMEJDK 路径。2 .根据你的系统下山 red5 的安装包,然后傻瓜式安装3 .从 OpenMeetings 下载一个已经打包好的应用(http: URed5 的webapps 里面,解压后目录应该是 xmlcrm(最新版本可能为 openmeetings)4.到解压后的 OpenMeetings 项目下 Install 目录中(新版本可能为 conf)按照你自己的数据库来修改目录中的任意一个

9、xxx_hibernate.cfg.xml文件并另存为hibernate.cfg.xml,我的是 MySQ 所以就直接把mysql_hibernate.cfg.xml 文件改名然后把数据库地址用户名密码写上去就 OK5 .打开 config.xml 文件,看看端口啊,地址啊,有没有什么要修改的。6 .启动 Red5 服务器。如果是在 Windows 下 Red5 设成了服务的,在 Windows 的服务中重启。7 .开浏览器输入地址 http:/localhost:5080/xmlcrm/Install (注意大小写; Install 根据版本也有可能为 conf;另外 5080 是默认端口,

10、如果修改了就按照你自己的弄)先进入安装界面,东西随便填。注意邮件服务器,如果你像我一样没有邮件服务器的话,就不填,只是暂时只能由管理员来添加帐号而无法直接注册,呵呵。然后其中要填入两个工具地址,就在页面上已经提供了下载了。8 .配置完了点击 Send 按钮,然后去喝杯咖啡或者茶什么的,因为要 5-10 分钟。=0=#9 .全部搞定访问 http:/localhost:5080/xmlcrm 就可以登陆了,你登陆的时候会是管理员,可以在顶上选择 Manag”进行管理。同时提供白板可以画画,还可以共享桌面,呵呵。先玩玩看看效果吧,晚点我再介绍修改。(二)看了效果后如果有兴趣,我们就可以开始着手修改

11、 OpenMeetings 了。要修改当然先是要拿到源代码了。我们先大致了解一下 OpenMeetings 的源代码结构。OpenMeetings 分为两部分:一部分是客户端,由 OpenLaszlo 和一些 Flash 文件组成,负责生成最终的客户端 swf 文件;另一部分是服务器端,由 Java 代码编写而成。我们必须分别下载并编译这两个部分,注意这两个部分版本必须一样。下面分别说明这两个部分的部署过程。服务器端1 .用 SVNM 这个地址 Checkout 出代码http:/ .到 install 目录中(新版本可能为 conf)按照你自己的数据库来修改目录中的任意一个 xxx_hibe

12、rnate.cfg.xml 文件并另存为 hibernate.cfg.xml,我的是MySQ 所以就直收把 mysql_hibernate.cfg.xml 文件改名然后把数据库地址用户名密码写上去就 OK3 .代码可以用 eclipse 直接 import,不过编译 OpenMeetings 推荐使用 ant,项目已经提供了一个 build.xml 文件,直接在 eclipse 里面 RunasAnt 就可以编译整个项目,编译结果将在项目下的 dist 目录下。(这里有个小问题, 本人下载的 r980 版本中的 build.xml文件居然编译的时候没有包含编译 java 文件,导致部署一直失败

13、,解决方法只需要在最后一行的 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 下了)客户端

14、1 .下载并安装 OpenLaszlo,2 .用 SVNM 这个地址 Checkout 出代码http:/ .代码也可以用 eclipse 直接 import,但编译需要使用 OpenLaszlo,这个以后4 .复制刚才代码下 xmlcrm 下的 videoconference 文件夹到 OpenLaszlo 下,OpenLaszlo 目录/Server/lps-4.0.9/(4.0.9 为我的版本号,根据服务器版本不同而不同)Windows认安装是这个地址:C:/ProgramFiles/OpenlaszloServer4.0.9/Server

15、/lps-4.0.9/videoconference/(其中4.0.9 同上解)5 .修改 videoconference/con 巾 g.xml 文件,端口啊、地址啊都改成你自己的。rtmphostlocal 标签中的内容是你的 red5 服务器安装位置。数据库配置与测试本来在上一篇里面写过一点点数据库配置,有兄弟在问,这里就再说下1 .安装一种数据库,数据库的类型随便,只需要保证 hibernate 支持类型就行了,这里可以看哪些支持 /80.html,不需要建立任何数据库或库表,等下程序会帮你建立2 .完成上面两步,注意服务器端的第 2 步,

16、那里必须保证正确3 .启动 red5 服务器4 .服务器端安装访问 http:/localhost:5080/openmeetings/Install,程序会自动进入 Step1 安装,上面框填入你的信息,中问框邮件服务器那一项如果没有可以留空,下面框填入 SWFToo 和 Magicimage 两个必须的工具的安装后的路径,如果没有安装这两个软件的话可以点击输入框下面的连接去下载,安装完成后再填入。然后选择 Senden,之后进展会很慢不要关闭页面也不要以为死机了,可以做些别的事情例如和身边的美女同事聊聊天什么的,大约 5-10 分钟后安装完成,此时数据库中已经多了一个库了。直接访问 htt

17、p:/localhost:5080/openmeetings 应该可以看见输出结果,但由于其中的 swf 是事先编译好的,不是我们编译出来的,所以我们还需要学习下面的客户端安装5 .客户端安装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 即可

18、看到结果 (4.0.9 根据具体版本号变更, 如果 OpenLaszlo 不在本机, 请修改 localhost为 OpenLaszlo 服务器地址SOLO 方法还可以使用 SOLGK 式编译(如何 SOLGK 式编译可以参看我另外一篇文章OpenLaszlo 下的 Proxied 和 SOLOS 种编译方法)在客户端目录中生成 swf 文件,然后将客户端目录中的 main.lzx.lzr=swf8.swf 复制到服务器端部署好的目录中覆盖原来的同名 swf 文件(即red5 路径/webapps/openmeetings),然后仅启动 red5 服务器,访问 http:/localhost:

19、5080/openmeetings 同样可以看见结果关于Laszlo开发工具Laszlo的开发工具网上大多数都是介绍使用 Eclipse插件 IDEforLaszlo作为开发工具,但此工具在 2006 年 12 月的时候就因为太不活跃而被 eclipse 留档停止了。现在比较推荐的是 Spket,http:/ iTouch,下次再来说修改和编译A_A。要修改代码,其实说到前面两步就差不多了,因为接下来的事情,就是读懂和理解代码,然后按照自己的需求来修改,各人需求不同,自然修改的方案也有很多不同。不过介于 OpenMeetings 客户端的开发语言为 OpenLaszIo,相信很多人都从来没有接

20、触过,这里我就大致的说下。学习简单的 OpenLaszIo 语法(比较懒的兄弟可以跳过这节直接转到下面的“懒人视频聊天室”,呵呵)隹荐大家去看一看 OpenLaszIoExplorer 中的 Laszloin10Minutes,启动 Laszlo 服务器,然后访问http::8080/Ips-/IaszIo-expIorer/index.jsp 就可以看见(Windows 下的安装后直接双击桌面图标就能够自动触发浏览器访问此地址)。这个是给大家对于 OpenLaszIo 的语法进行一个简单的介绍。另外,点击Documentation 下面的 LZXReferen

21、ce 还能够看到更详细的每个标签和指令的介绍。这些应该都会在修改代码过程中有所帮助。我这里介绍几个修改代码时可能会用的多的:1 .类的继承、定义与使用2 .事件与触发3 .基本元素 view,text4 .数据绑定(dataset)看这些相信最多花费你 1-2 个小时的时间,然后你就可以开始修改了。在调式模式下启动 OpenMeetings首先说下我修改时的调试方法,我是在后台启动部署了 OpenMeetings 服务器端的 Red5 和部署了客户端的 OpenLaszIo 两个服务器,然后访问http::8080/Ips-/videoconference/ma

22、in.Izx?Izr=swf8,即可编译并启动 OpenMeetings 客户端然而,在 OpenMeetings 客户端的根路径下其实有两个主文件,一个 main.Izx 和maindebug.Izx,这两个都可以用来整合编译并启动 OpenMeetings 客户端,但 maindebug.Izx 是带调试界面的,更便于修改用,我们可以把访问地址改为:8080/Ips-/videoconference/maindebug.Izx?Izr=swf8,这样每次运行都会有一个调试框, 里面会显示很多客户端本身就带有的调试信息。当然你也可以自己在代码中写入

23、调试信息,Debug.write(xxxx);运行时即会将 xxxx 的内容显示在调试框中。OpenLaszlo 下的 Proxied 和 SOLCM 种编译方法TriinKi&dtr时间不多,随便说一下OpenLaszloServer 方式(代理方式)CGMPIIFRPEBUCCER-MCDIA-DATASERVESSERVERPHOXY0p前小cc/*M*dkiPtoxyiLaszlo有两种编译方式:1.通过OpenLaszloServer进行编译2.一次性将lzx文件编译成swf文件这两种方法各有好处,下面分别介绍,并简单的介绍了下SOLO模式的几种编译方法这种相信现在大家都在用

24、,启动OpenLaszlo服务器,然后在浏览器中输入lzx文件全路径,不需要任何参数或设置,即会出现结果。代理方式好处是测试简单方便,坏处则是如果你要部署的话,需要在部署服务器上另起一个OpenLaszlo服务器端。下面是官方文档中对于此方式的图解:OMNLAfZLQSERVERCOMPILATIONREQUESTMEDIAREQUESTATAREQUESTCjPEMla手WinCLIENTDEBUGREQUESTMEDIAXMLDATAswf 文件方式(SOLO 方式)SOLO的全称是StandaloneOpenLaszloOutput,即根据Izx生成swf文件,编译完成以后,每次只需要s

25、wf即可运行程序,而不再需要OpenLaszlo服务器了。这样的好处是显而易见的,部署非常方便,少一个服务器需要启动、配置和维护,可以在任何的环境下执行,你甚至可以把它上传到你的个人免费静态空间中。下面是官方文档中对于此方式的图解:SOLO 的编译方法网上很多朋友询问如何生成swf文件,这里有三种方式可以生成:1,用命令行进行编译cd/binlzc-runtime=swf8然后就可以在你的lzx文件路径下发现一个swf文件(如果编译时出现Outofmemeory异常,则修改lzc.bat文件,在java后面加上参数-Xmx512m再执行;如果编译时始终出现参数错误,可能是命令行系统错误的将=号

26、作为参数分割了,尝试将带等号的参数两边用双引号括起来)EXTERNALWEBAmiCATIONSANDRESOURCESCLIENTAPPLICATION.MedktProjty/2 .用浏览器输入带参数地址编译http:/?lzr=swf8&lzproxied=false效果同上3 .用canvas属性编译canvas标签有个proxied的可选属性,其值可以为true|false|inherit,指定为false即可达到与上面相同的效果suck!然后通过浏览器访问地址http:/?lzr=swf8效果同上大概就这么多。最后,如果使用一种方式编译后的swf无法正常工作,尝试下其他的方

27、法,或许能成功参考文档:Chapter49.UnderstandingCompilation懒人视频聊天室有很多兄弟肯定还是比较懒的,接下来我将几个简单又比较通用的修改帖上来,按照这个修改完成以后基本上就是一个简单的视频聊天室了,下面的步骤不分先后,你可以根据自己的需求决定哪些需要修改哪些不需要:1 .去掉邮件注册前面我们介绍了 OpenMeetings 安装的时候必须设置一个邮件服务器,如果没有邮件服务器则前台是无法注册的。现在我们就把这个烦人的邮件注册去掉。K 务器端文件中,找至1Jorg.xmlcrm.app.data.user.Usermanagement 类,找至 U 下面一行Lon

28、guser_id=this.registerUserInit(3,1,0,1,login,Userpass,lastname,firstname,email,age,street,additionalname,fax,zip,states_id,town,language_id,true,newLinkedHashMap();将倒数第二个 true 改为 false,部署以后再到前台注册,现在已经不会提示InvalidEMail 了2 .修改界面左上角网站名称和连接修改 config.xml 文件中:xxx为网站名称(可以为中文)、标签为自己的网站 URL3 .修改登录框,设置默认语言为中文每

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

30、)。这样重新编译,你的界面就初始为简体中文了。(貌似也可以用管理员帐户在后台直接改)4 .去掉登录框上不需要的部分登陆框下面的语言选择,颜色选择和带宽我都去掉了,方法如下:auth/checkLoginData.lzx 文件,其中每个 labeltext 标签和其下缩进的一个表Chapter25.ProxiedandSOLOApplications单标签(combobox/customedittext)一起代表一行的输入框和其前面的名称,将不需要的都在标签最后加入 visible=false”属性(我去掉了最后三项)。同时注意剩余的 labeltext 和表单标签中的 y 值为其所在的纵向坐标

31、, 需要修改之让其匹配界面应在的位置。可以参考原删除的标签的 y 位置。最后的simplelabelbutton 就不要改了,因为是按照相对高度定位的。最后,修改整个窗体的高度,顶部的 class 标签最后的 height 属性,改为应有的值,大概是每删除一个表单标签-30,例如删除了 3 项输入框,就是原有高度 260-(3x30)=170。5 .修改登入后界面,直接到私人房间界面对于一个聊天室,登陆以后其实直接到房间列表就够了,所以你需要。/xmlcrm/navi/mainnavi.lzx文件, 找至Umainnavi类, 最后个handlername遂oninit,修改代码行 if(i=

32、0)t1.onclick.sendEvent();中间 if 条件为 i=2。这样进入后就会自动进入“会议”菜单然后找至 Umainmenumeetingsitem 类,下面的 handlername 遂 onclick”,最后一行 elsethis._menuRef.subviews0.onclick.sendEvent();改为 elsethis._menuRef.subviews1.onclick.sendEvent();这样进入后就会自动进入“私入会议”列表界面6 .去掉房间列表页面中右侧的聊天窗口进入房间列表页面以后,可以看见右侧有一个聊天窗口,如果你希望屏蔽他们的话。根据需要修改/

33、xmlcrm/content/meetings/publicmeetings.lzx(公共房间歹 U 表)/xmlcrm/content/meetings/privatemeetings.lzx(私人房间歹 U 表),删除一行即可7 .屏敝顶部采单顶部菜单可以进行一些操作,但对于一个聊天室,这些操作其实有些多余,下面是删除办法。/xmlcrm/navi/mainnavi.lzx 文件,找至 Umainnavi 类,先在其中找至 U 第个 view标签(就在紧接一堆 attribute 下面,不含有 name 属性的那个),然后为其加上 nameH,|4name=navibar”。然后还是 ma

34、innavi 类中,找至 U 最后个 handlername 遂 oninit”,在 Debug.write(this:if(value.length=4)this.navibar.setAttribute(this.itemlist.setAttribute(this.subitemlist.setAttribute()这样, 当管理员登陆的时候看到的还是原来的界面。 普通用户登陆则看不到顶部菜单。如果只希望屏蔽一级菜单,而希望留下“公共会议”和“私人会议”菜单,则不要第三行 this.subitemlist.setAttribute(visibility,“hidden);即可。8 .屏蔽

35、右上角菜单,仅剩下 Logout 登出登陆进去以后,屏幕右上角总是显示三项:用户、退出、报告错误。如果不希望有用户和报告错误两项的话,就按照下面的做。/xmlcrm/navi/mainnavi.lzx 文件,找至 Uhelpandbugs 类,斗等其中 name 遂 btnl和 name 遂 btn2的两个 view 标签及其包含内容全部删去即可,this);后添加代码:visibility”,“hidden);visibility”,“hidden);“visibility”,“hidden);9 .修改未翻译的文字即使选择了简体中文,系统依然会有很多地方的显示是英文的,我们需要手工的将部分

36、未翻译过来的单词自己翻译一下,有三种办法:(1)在服务器端代码(不是客户端代码)中找到,里面存的是所有的国际化文件,english.xml为英语,Chinesesimplified.xml 为中文,用文本编辑器打开以后可以按照你自己的希望对不满意的翻译进行修改。修改以后需要用管理员帐号登陆,然后在【管理】-Language-Editor中 Import 修改后的 xml 文件到 Chinesesimplified。(2)用管理员帐号登陆,然后在【管理】-【Language-Editor)可以直接对数据库中的语言进行翻译,比较方便。(3)直接访问数据库表 fieldlanguagesvalues

37、,用select*fromfieldlanguagesvalueswherelanguage_id=9 即可查看所有的简体中文国际化记录,直接修改 value 的值也能达同样的结果,用数据库的好处是查找比较方便,呵呵另外还有部分语言是硬写在代码里的,这些只需要对整个项目搜索那段英文再修改为中文即可,例如:/conference/popups/changedevice.lzx 中 Donotaskagain 改为中文“下次不再提示”10 .删除进入房间后顶部菜单中不需要的功能进入房间后,顶部一排有很多功能菜单,申请主持、文件上传、投票等等,这些功能对于一个纯粹的聊天室来说,有些多余,而且这些功能

38、全都可以在其他地方实现,所以你可以根据需要将顶上的部分功能菜单给删除。/xmlcrm/content/conference/conferencemenubar.lzx 文件中找至 Uconferencemenubar 类, 其下每一个 labelmenu 标签代表一个菜单项, 顺序为从左至右,将不需要的菜单项删去或注释掉即可。再在上面一点找到一堆 command标签,根据快捷键将不要的也删除或屏蔽,以避免有人使用快捷键调用功能。而房间上中的按钮和显小则在文件/conference/moderation/moderationpanel.lzx 的 moderationpanel 类中,同样将不需

39、要的屏蔽即可11 .国际化房间里主要面板的标题进入房间后,发现不管怎么修改语言数据,那三块板子顶上的标题就是不变,这是因为这三个标题没有绑定国际化的原因。/xmlcrm/content/conference/conference.lzx 中,找至 Uvideoboard 类,删去title 属性,加上 labelid=313;找到 whiteboardpanel 类,删去 title 属性,加上 labelid=315;找到 filespanel 类,删去 title 属性,加上 labelid=31412 .删除房间里左下角框中不需要的功能房间里左下角框里面是有聊天、文件和成员三个选项的,

40、文件用来控制白板,还有些用,而投票在视频聊天室里面恐怕用不上,所以去掉。/conference/tabbar/conferencecontainertab.lzx 中,找至 Uconferencecontainertab 类, 3 个 openmeetingsTabButton 标签每个代表一个 tab 按钮,屏蔽不需要的13 .修改房间人数限制有些兄弟认为 4 人房间的聊天室太无聊。不过好像也是。又不是打麻将。所以。/xmlcrm/conference/roomlistItem.lzx 文件中一行,修改 value 的值即是修改最大人数。最大人数修改以后展示的时候界面可能有些乱,这个就你自己

41、去调整了,因为我做的时候没有这个需求,所以没有测试过实际效果,呵呵客户端文件结构简单介绍这里只介绍几个对界面修改比较有用的文件:/config.xml 一些全局参数定义/main.lzx 主文件,用来整合其他文件/maindebug.lzx 带 debug 的主文件/xmlcrm/hibernate/rtmphib.lzx 定义并实例化 hibrtmpconnection 类,负责主要流程调度及部分默认配置,比较重要/xmlcrm/hibernate/netremotecallhib.lzx 定义 netremotecallhib 类,继承于netremotecall 类,负责调用后台服务器端

42、 Java 方法,使用很多/xmlcrm/content/meetings/publicmeetings.lzx 定义公共会议歹 U 表相关类/xmlcrm/content/meetings/privatemeetings.lzx 定义私人会议歹 U 表相关类/xmlcrm/conference/roomlistItem.lzx 定义 roomlistItem 类,代表会议房间列表页面中的一个房间展示/xmlcrm/auth/checkLoginData.lzx 定义 checkLoginData 类,负责登陆框的显示/xmlcrm/navi/mainnavi.lzx 定义登录后的主界面展示相

43、关类/xmlcrm/content/conference/conferencemenubar.lzx 定义房间左上角菜单/conference/moderation/moderationpanel.lzx 定义房间上中的显示和按钮/xmlcrm/content/conference/conference.lzx 定义房间主要的三个面板类/conference/tabbar/conferencecontainertab.lzx 定义房间左下角聊天窗口中的内容/conference/video/basevideoobject.lzx 视频对象的基类,定义了视频图像的外框显示/conference/

44、video/videoobjectbroadcast.lzx 视频播放类,定义了会议房间中的本人的视频显示/conference/video/videoobjectplayBroadcast.lzx 视频播放类,定义了会议房间中的其他人的视频显示/conference/video/videocontainer.lzx 视频容器类,定义了房间内左上角框里的所有视频对象的展示/conference/whiteboard/白板相关类/conference/tabcontent/chat 房间内的聊天窗口相关类/conference/tabcontent/files 房间内的文件窗口相关类部署要部署的

45、时候建议把整个客户端生成一个 swf 文件然后复制到服务器端(即使用SOLOJ 式编译,如果不知道如何编译,参考我的另一篇文章 OpenLaszlo 下的Proxied和SOLCW种编译方法) ,这样服务器端部署的时候就不需要再开启OpenLaszlo服务器了。另外注意,将修改过的 config.xml 文件和 swf 文件一起拷贝到服务器去,否则有些修改又没了,呵呵。(如果 swf 文件和 red5 是部署在同一台机器上的,建议你把 config.xml 文件中 rtmphostlocal 留空,这样可以省去很多麻烦)拷贝过去后先修改 index.jsp 文件中 SWFObject 的第一个

46、参数, 使之指向你的 swf 文件。然后访问 http:/localhost:5080/openmeetings/即可看到效果,部署完成。然后,然后。如果你在自己的机器上部署了,希望外网的朋友来和你一起测试或使用的话,注意要配置路由上用虚拟主机端口映射,开放 1935、8088、5080三个端口指向自己(当然也可以直接将自己设为 DMZ。如果感觉自己够安全的话。),如果是非 SOLQJ 式还要为 Laszlo 服务器开放 8080;另外,机器上如果有Kapersky 之类的话需要关闭,否则会拦截外网的端口访问。写在最后好了,东西写的差不多了,虽然我自己修改这个所做的远不止写的这些,但我想我也只

47、能写到这里了。我写这些东西的目的只是希望大家能够得到一点启发,每个人需求都不一样,我相信根据我的修改肯定达不到你的要求,但相信你通过边做边学习这些之后,完成后面的事情应该不是什么难事了。我平时少上 IM,我的邮箱是 ,有兴趣的朋友可以 mail 我交流,呵呵(四)本来是没什么东西好写的了,不过这几天的持续改造中又出现了各种让人比较头疼的问题,准备将这篇文章作为持续更新,遇到比较疑难的问题我会一直发上来。1 .改进摄像头这不知道是否算的上个 bug,google 了一下,中文网页没见人提过,英文的话。俺英文比较差看不太懂,呵呵。现象是这样的,进入房间后显示的视频,会根据不同的摄像头被切掉一部分,

48、有的摄像头只切掉边缘一小块,而有的摄像头甚至只显示了原面积的 1/9,平时可以看见一个身体的,这里却只能看见一只眼睛。由于我的需求是需要让不同的视频框有不同的大小,俺花了一个下午的功夫才搞定摄像头视野被裁切的问题,下面是修改的部分,大家可以自己修改试试。/conference/remote/devvideoview.lzx 文件中,在类 devvideoview 中增力两条 attribute:修改中:vid._width=this.width;vid._height=this.height;改为:vid._width=this.myWidth;vid._height=this.myHeigh

49、t;修改中:if(!this._clipinitdone)this.width=w;return;改为:if(!this._clipinitdone)this.width=576;this.myWidth=w;return;修改中:if(!this._clipinitdone)this.height=h;return;改为:if(!this._clipinitdone)this.height=432;this.myHeight=h;return;)2 .修复房间用户数量不增加问题我的版本 r988 有这个问题,感觉这也算一个 bug。问题的现象是,用户加入房间后房间的用户数量始终为 0,这样主要是房间人数上限就没有起到作用了。后来看了下程序,发现是客户端调用 rooms_id 不正确导致的,只需要修改/xmlcrm/content/conference/roomlistItem.lzx 文件,将所有的this.obj.rooms_id 全都改为 this.obj.room.rooms_id 即可解决问题。3 .服务器端

温馨提示

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

评论

0/150

提交评论