openmeetings3.0.x 源码编译+改造

来源:互联网 发布:淘宝手机十大黑店 编辑:程序博客网 时间:2024/05/22 17:20
环境要求:
Eclipse + JDK7以上版本
Apache ANT 1.8.3 以上版本 (Eclipse4.4以上版本自带Ant满足低配要求)
Subclipse 1.8 (Subversion 1.7 required!) http://subclipse.tigris.org/
SVN Command line client (Subversion 1.7 required!) http://subversion.apache.org/packages.html
Spring IDE for Eclipse (installable via Help > Eclipse Marketplace)
Apache IvyDE? For Eclipse (installable via Help > Install New Software) URL: http://www.apache.org/dist/ant/ivyde/updatesite detailed steps can be found here: http://ant.apache.org/ivy/ivyde/download.cgi
MySQL (or Postgres, or other Databases supported by openJPA) are optionally but handy to have them

---------------------------------------------------------------------------------------------------------------------------------------------------------------------
编译方式过程:
用SVN Check出项目(URL: https://svn.apache.org/repos/asf/openmeetings/branches/3.0.x/),然后直接右键运行Ant build   
(注意事项:项目必须由svn来Check出,不然编译过程会报错。)

PS:第一次编译需要30-50分钟,需要下载的文件很多。


---------------------------------------------------------------------------------------------------------------------------------------------------------------------
编译过程的问题:


错误1:
Cannot find javahl, svnkit nor command line svn client
答案:访问 http://www.sliksvn.com/en/download 下载Subversion client注意下载32位还是64位的,安装后就可以了

 


错误2:
D:\WorkspaceMeeting\最新版本OM\build.xml:967: Warning: Could not find file D:\WorkspaceMeeting\最新版本OM\${tools.jar.path} to copy.

原因:

第967行是这样:

<copy file="${tools.jar.path}" tofile="${project.lib.dir}/java_16_tools.jar" />
我再这行的前面增加了一行信息显示:
<echo message="Copy File from ${tools.jar.path} to ${project.lib.dir}/java_16_tools.jar" />
结果显示为:
[echo] Copy File from ${tools.jar.path} to D:\WorkspaceMeeting\最新版本OM/build/lib/java_16_tools.jar
说明tools.jar.path不认识

答案:在Eclipse的菜单:windows \ preference \ java \ installed JREs \ 中的 jre6指向  D:\Java\jdk1.6.0_31

因为我的D:\Java\jdk1.6.0_31\lib 这个目录下有 tools.jar


错误3:

如果一次性未编译完整,二次再变异可能会出现的状况。

svn: is not a working copy !      

答案:删除任务,重新check 出来再运行(暂时知道这种方法可行)。  

PS:如果出现问题需要重新check或者import,复制原项目目录下的build+dist两个文件夹至新项目内(Ant编译生成的文件会保存到这两个目录,重新编译不需要再下载之前已编译好的文件),然后再运行build.xml。



--------------------------------------------------------------------------------------------------------------------------------------------------
更改源码后需要Ant编译,然后再dist目录生成新的red5文件夹,再重新安装。

每次编译完后,需要重新安装openmeetings,大致步骤:删数据库,再新建;导入mysql-connector-java-5.1.26-bin。


---------------------------------------------------------------------------------------------------------------------------------------------------------------------

源码改造:


一:interview会议室改为4个固定视频窗口
1.interviewVideoBox.lzx文件
<class name="interviewVideoBox" extends="view" width="322" height="281" bgcolor="0x000000"> 改为width="400" height="335" 


2.interviewWhiteboard.lzx文件
  <!--  <simplelayout axis="y" spacing="2" />  -->
    <commonVideoViewContent name="_videoviewcontent" >
        
        <!-- 增加视频窗口 -->
        <interviewVideoBox name="interviewVideoBox1" x="20" y="5" interviewPodId="1" />
        <interviewVideoBox name="interviewVideoBox2" x="480" y="5" interviewPodId="2" />
<interviewVideoBox name="interviewVideoBox3" x="20" y="390" interviewPodId="3" />
<interviewVideoBox name="interviewVideoBox4" x="480" y="390" interviewPodId="4" />
    </commonVideoViewContent>
3.FlvInterviewConverter.java文件
final int flvWidth = 400;
final int flvHeight = 335;

final int frameRate = 25;


二:房间内左上角菜单(去掉第二行的解释)
conferenceMenubar.lzx文件 
屏蔽所有“_ctextTooltip”相关行


三:隐藏进入房间视频选择窗,设定固定值
更改changeDevice.lzx文件  
    <method name="storelocaldata">
        <![CDATA[
        var so:SharedObject = SharedObject.getLocal('userdata');
        var sdata = so.data;
     <!-- if (sdata==null) sdata = new Array(); -->
        sdata["cam"]=availibleCams3.getValue();
        sdata["mic"]=availibleMics3.getValue();
        sdata["savecamdata"] = this.holddatainSO.getValue();
        so.flush();
        ]]>
    </method>
        <handler name="oninit">
            var so:SharedObject = SharedObject.getLocal('userdata');
       var sdata = so.data;
            var save = sdata["savecamdata"];
            <!-- if ($debug) Debug.write("savecamdata save: ",save);
            if(save)--> this.setValue(true);
    </handler>  


待续...




0 0