本文的应用场景是这样的: 一个老师和n个学生进入同一个教室,所以,它们将看到同一个电子白板。而老师角色与学生角色的区别在于老师有特殊的白板权限,这些权限包括:上传课件、打开课件、删除课件,在白板上绘图、标注、翻页等等。
一.服务端 服务端直接将 omcs.boost 提供的omcs.server项目源码搬过来,不用作任何修改。
二.客户端1. 实现课件到图片的转换 白板课件最常见的类型为:word、pdf、ppt文档。所以,首先,我们需要实现iimageconverter接口,将pdf、ppt、word文档转换成图片。与之对应,我们设计了三个类:word2imageconverter、pdf2imageconverter、ppt2imageconverter。关于它们的具体实现代码可在demo的源码中查看。
然后,我们要实现iimageconverterfactory工厂接口:
public class imageconverterfactory : iimageconverterfactory { public iimageconverter createimageconverter(string extendname) { if (extendname == ".doc" || extendname == ".docx") { return new word2imageconverter(); } if (extendname == ".pdf") { return new pdf2imageconverter(); } if (extendname == ".ppt" || extendname == ".pptx") { return new ppt2imageconverter(); } return null; } public bool support(string extendname) { return extendname == ".doc" || extendname == ".docx" || extendname == ".pdf" || extendname == ".ppt" || extendname == ".pptx"; } }
然后,在程序启动时,将工厂注入到omcs的多媒体管理器(imultimediamanager)中:
imultimediamanager multimediamanager = multimediamanagerfactory.getsingleton(); multimediamanager.imageconverterfactory = new imageconverterfactory(); // 图片转换器工厂,供omcs内部将课件转换成图片的过程中使用。
2.登录时区分角色:老师、学生 客户端登录界面设计如下所示:
根据选定角色的不同,进入白板时,所拥有的权限不一样,主要体现在白板连接器的两个属性设置上:
public whiteboardform(string classrid, bool isteacher ) { initializecomponent(); this.classroomid = classrid; this.whiteboardconnector1.ismanager = isteacher; this.whiteboardconnector1.watchingonly = !isteacher; this.text = string.format("正在访问{0}的电子白板" ,this.classroomid); this.whiteboardconnector1.connectended += new cbgeneric<connectresult>(whiteboardconnector1_connectended); this.whiteboardconnector1.beginconnect(this.classroomid); }
ismanager 属性用于控制是否有权限上传课件、打开课件、删除课件等。
watchingonly 属性用于控制用户是否可以在白板上绘制图像等操作。
在本demo中,我们这样设定的效果是,老师可以操作课件,并且可以在白板上绘图、书写等,但是学生只能观看白板,不能进行任何操作。
三.下载 源码:omcs.demos.whiteboardtest.rar
运行系统进行测试时,请注意:
(1)启动omcs服务端。
(2)启动第一个客户端,选择“老师”角色,登录进默认教室。
(3)再启动多个客户端,选择“学生”角色,登录进默认教室。
(4)老师即可进行上传课件、打开课件、删除课件、课件翻页,在课件上标注、书写,等等操作。
老师端界面如下所示:
【推荐课程:c#视频教程】
以上就是c#实现网络电子白板、课件功能 (在线教学系统)的详细内容。
