Openmeetings改造之主持人控制其他人发言
在Openmeetings视频会议系统中,主持人无法直接控制其他人发言,每人都能通过发布自己的摄像头和麦克风在会议室中发言,这在管理上似乎会造成困扰,如何实现这个功能呢,其实我们只需要在Openmeetings中修改少量代码即可实现此功能,以下是具体步骤:
?
首先通过加入一个类似电子白板的小图标按钮来让主持人控制其他人的音视频,如图:
?
<view name="_icon_av" x="42" y="3" resource="participents_huatong" onclick="" showhandcursor="false"> <labelTooltip text="是否允许对方开启音视频" /> </view>?加入音视频开关侦听代码:
<handler name="onAVAllowStatus" reference="canvas" args="avObj"> <![CDATA[ if (this.refObj.publicSID == avObj.publicSID) {this.refObj.canAV = avObj.canAV;this.updateIcons(); } ]]></handler>?加入图标事件代码:
<miniIcons name="_canAV" x="40" width="16" resource="participents_huatong" height="16" showhandcursor="false" > <handler name="onclick"> <![CDATA[ if (canvas.ismoderator) { parent.parent.setCanAV.doCall(); } ]]> </handler> <labelTooltip text="" /> </miniIcons> <miniIcons name="_canAVModerator" x="40" width="16" opacity="0.3" resource="participents_huatong" height="16" showhandcursor="true"> <handler name="onclick"> parent.parent.setCanAV.doCall(); </handler> <labelTooltip text="发言(音视频)权限" /> </miniIcons>?这些代码都在参与者的lzx文件中添加,这里差不多完成工作的80%,剩下的20%只要用来处理当主持人关闭某人的音视频后,必须关闭当前音视频流媒体通道,这个也非常简单,代码如下:
//根据SID,关闭媒体流var obj = this.closeStreamClient(publicSID);obj.destroy();?所有的工作就这些,最终的在线测试效果:http://api.faqee.com/test.html