--------------------------------------------------------------------
改造OpenMeetings成为Flash视频聊天室(一)
改造OpenMeetings成为Flash视频聊天室(二)
改造OpenMeetings成为Flash视频聊天室(三)
改造OpenMeetings成为Flash视频聊天室(四)
--------------------------------------------------------------------
本来是没什么东西好写的了,不过这几天的持续改造中又出现了各种让人比较头疼的问题,准备将这篇文章作为持续更新,遇到比较疑难的问题我会一直发上来。
1. 改进摄像头
这不知道是否算的上个bug,google了一下,中文网页没见人提过,英文的话。。俺英文比较差看不太懂,呵呵。
现象是这样的,进入房间后显示的视频,会根据不同的摄像头被切掉一部分,有的摄像头只切掉边缘一小块,而有的摄像头甚至只显示了原面积的1/9,平时可以看见一个身体的,这里却只能看见一只眼睛。
由于我的需求是需要让不同的视频框有不同的大小,俺花了一个下午的功夫才搞定摄像头视野被裁切的问题,下面是修改的部分,大家可以自己修改试试。
/conference/remote/devvideoview.lzx文件中,在类devvideoview中增加两条attribute:
修改<method name="init">中:
改为:
修改<method name="setWidth" args="w">中:
改为:
修改<method name="setHeight" args="h">中:
改为:
2. 修复房间用户数量不增加问题
我的版本r988有这个问题,感觉这也算一个bug。
问题的现象是,用户加入房间后房间的用户数量始终为0,这样主要是房间人数上限就没有起到作用了。后来看了下程序,发现是客户端调用rooms_id不正 确导致的,只需要修改/xmlcrm/content/conference/roomlistItem.lzx文件,将所有的 this.obj.rooms_id全都改为this.obj.room.rooms_id即可解决问题。
3. 服务器端代码嵌入中文,ant提示中文警告的问题
这个其实不算是openmeetings的问题,不过开始还是让我头痛了一把。由于ant编译的默认编码是根据系统的编码来确定的,因此如果java文件 存成utf-8而系统编码又是GBK(win2000)或者GB18030(winxp)里面又含有中文,那么ant编译的时候就会提示警告。如果只是注 释是中文,则警告也不会有什么影响,但是如果有字符串里面写着中文,就出问题了。
解决方法是查找build.xml文件中所有的javac标签,为其加上属性encoding="UTF-8"即可解决问题。
4. RED5服务器0.7以上版本无法配置针对项目的log的问题
这个问题是由于red5服务器最新版由log4j改为使用logback导致的。如果使用red5 0.63或以下版本,原来的openmeetings中的配置是没有问题的,如果使用0.7或以上版本,则openmeetings需要修改才能使之按照 项目配置正常输出log。方法如下:
(1) 在openmeetings下的lib/red5中删除以下jar包,这里注意,如果项目中有其他的log4j-xxx.jar也要删除
(2) 在red5安装路径下的lib中找到如下jar包:
复制到openmeetings下的lib/red5中并将其加入eclipse的classpath
(3) 在openmeetings项目中webapps/openmeetings/WEB-INF/web.xml文件中删除以下段落
以及以下段落
(4) 删除openmeetings项目中所有的log4j.properties和log4j.xml,应该是有两个 webapps/openmeetings/WEB-INF/log4j.properties和src/app/log4j.properties
(5) 最后在src/app/添加logback.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%d{MM-dd HH:mm:ss.SSS} %-5level %logger{36} - %msg%n
</Pattern>
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="STDOUT" />
</root>
<logger name="org.hibernate">
<level value="WARN" />
</logger>
<logger name="org.apache">
<level value="WARN" />
</logger>
<logger name="org.springframework">
<level value="WARN" />
</logger>
</configuration>
(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...
--------------------------------------------------------------------
改造OpenMeetings成为Flash视频聊天室(一)
改造OpenMeetings成为Flash视频聊天室(二)
改造OpenMeetings成为Flash视频聊天室(三)
改造OpenMeetings成为Flash视频聊天室(四)
--------------------------------------------------------------------