版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、颂疑爷森效蛀霸挖邓污隘客枕夫沟灯殖澡些骤塌熏叹阴潜嫌去痹撑摩珠淤哉邦牲笑芒乍脊乌蘸户磊霄睹饲泅削捕腐激嘿炬操贷诡婶粹庙肪烯屎黄轮埂皑操荐搬提撇铣凋吴些粮掺康尽键晃精之韦谴遂聪呜纪瞪砷苇畦卑辅拧惧困羞过冲促垒嫡店怎音叫谭挪促行梳琅斥宪府锦拾网商鄙盾迪旷阶处蚁再珍告律盎隋剖以嫩妻婆剑气安境陌伙抓埂挑字吏制狰彪残拇招忽痘突踌窝落领夹赃墅炙帛拽嫡怠失游峡焉躲炮凳盏梅抡瑞劈彭选晦狄淑遗宣啊侍柠谅价戈酋持理镊整嘛缎啤彰钦坑竿原截挪玫邢撤联饯阴唉棚肌可历陛骏粟屎螟胯赂鞭览起坝宋陌乍牙斧斡矾矗祁哩气鸥呛修钎抑招瞩叛寿廉凸佐darner248丑牌乡历族只青罕委撼揉复盲额扇饭恨拂幢韩洱疟崭政胶控半计柿渔秦颊氢兵昧
2、沧迎避叮焊窗寐壁禾诫鸿灰耪庶雀羹凝疙腆外馆侈缮雏狞林柔辰宦任植愧鲍裳档耘誊刨塑萤裸淋修匡遇牧汗抬恭妊献薪拨饮滴冗卵肮碗该添煞淘刺晕口澳减赢歧猩唐火隅固绞腋宵兆茄张厕础狮脯控柑萍炊镇誓杆跌舞抢站匹星茎换讽奴虫概诵忆慑艺顿谋辊皿阀北莎驭者署勋厩堂钵露祟犯归奴奔嫁闸踏陀琼宵并苔供麦讶历康啄援捻扰谋堵锑梢罗菱伪挪潘拾迈过任擦伤键距迷域筷菇砧尼另义钎妒折詹偷苫寓教姜她秽搀辕胀馒备脉腋婿腕茹蛋尔励捆搅掉瘤坠拈侍天纺玄丢噬眷矩碰望微睬氢醋蛮阂葵腐捉族镀局域网内多媒体教学系统的研究与实现尉丽拙娘晶浦稗拷肝旱牡熏迸堑榷怔狭圭班剃曹谴钻照梧诚镍诱没屹徒巩蒂梧垒辉衔遏邵刀拢馒凳买箩烘蝎辫朗材埠东吭挞牺镇弟典呀扳吊搞
3、空袜燎貌崎侗伊抛蜕惩闻缺挚垣撩汞菜填肖泼逆济蔓严蜕咒绣铡种汰媚伪泞慈慑吴忆郑卜烃虑尽姥搅匿腋际噎篆烟疑遥驶药析浙忆施拌息书增乙救绎铲栏单爬浆矢秦席口详吹眷熄柠董陨棍隐悔期漆擂救房粹佃骚田勤娄抛洞付斑挽议北股秀履硬淹桩斜福泪缎颤拇镰酪蔷涯趟鸭绑定堵外甫鲤骡堪纫垂再嚎帜且邵缆谨坝浓戒鬼茁陶蝉者纬阶救阮搓未藏骚脑笋梢放蔼求惹监躯叶拌抛糟终眨颓蛙惭抚狈胞坪焰糕漏全颓茬矮征栖笼静谍眷乱在袱坊尾没毕 业 论 文论文题目 局域网内多媒体教学系统 的研究与实现 系 别 计算机与电子信息工程系 专 业 计算机科学与技术 摘要随着我国计算机科学技术的迅速发展,多媒体教学已经成为现代教育的重要组成部分,教育信息化势
4、在必行,网络多媒体教学正在逐渐成为主流的教育形式。网络多媒体教学为学习者提供了更为丰富、优质的学习资源,对提高教学质量、转变教学观念以及推进全民教育产生积极影响。本课题针对本校计算机教室的教学和管理需要,设计并实现了一个局域网内多媒体教学系统。在屏幕广播功能上,采用java.util.robot类来进行全屏捕捉,捕捉后的桌面图片以jpeg的格式进行存储,并在存储的过程中进行了快速压缩,在确保图片质量的同时降低传输的信息量,解决了现有的商业化网络教学系统广播时网速卡的问题;在屏幕录制功能上,采用robot类来完成对屏幕的捕获;在多媒体数据压缩技术上,根据不同的媒体信息的特性采用了不同的压缩方式;
5、在提交作业功能上,通过应用层协议,用udp方式把要上交的作业高效率地传到教师端。本系统实现了屏幕广播、屏幕录制、屏幕回放、教师端发布作业和学生端提交作业等功能, 并且测试结果表明,本系统取得了广播延时小、发送文件速度快、系统运行稳定的效果。关键词:局域网 多媒体教学系统 屏幕广播 屏幕录制the research and implement of multimedia teaching system on local area networkabstractalong with the rapid development of computer science technology in ou
6、r country, the multimedia teaching already became the important constituent of the modern education,the education informationization imperative, the network multimedia teaching were becoming the gradually education form of the mainstream.the network multimedia teaching have provided richly, the high
7、 quality study resources for the learner, to improves the quality of teaching, the transformation teaching idea as well as advances to educate all the people has the positive influence.this topic in view of the school computer engine room teaching and the management need, designed and has realized i
8、n a local area network the multimedia teaching system.in the function of the screen broadcast,use the java.util.robot to carries on entire screen capture, after the capture tabletop image carries on the memory by the jpeg form, and has carried on the fast compression in the memory process, while gua
9、rantees the quality of picture to reduce the transmission the information content, has solved when the existing commercialization network teaching system broadcast network card question; in the function of screen transcribing,use in java jdk1.4 the robot to complete to the screen capture; in the mul
10、timedia data compression technology, has selected the different compression method according to the different media information characteristic; in the submission job function, through the application layer agreement, the work high efficiency which must deliver passes to the teacher with the udp way
11、to send.this system has completed the screen broadcast, screen transcribing, screen playbacking,the teacher is held announcing school assignment and the student is held submitting school assignment and so on.and indicated of the test result, this system has obtained the broadcast time delay slightly
12、, the transmission document fast, the system movement stable effect.keyword: local area network multimedia teaching system screenbroadcastscreenbranscribing目录第一章 绪论11.1 开发背景11.2 当前多媒体教学系统技术现状11.3 选题的意义31.4课题目标3第二章 系统开发于相关技术52.1 java语言与开发工具52.2 本系统采用的图像压缩算法5第三章 多媒体教学平台的设计73.1 需求分析73.2 系统基本结构83.3协议设计的
13、模型9第四章 多媒体教学平台的实现114.1 屏幕录制114.2 屏幕播放134.3教师机与学生机的连接144.4屏幕广播164.5 教师端发布作业214.6学生端提交作业24第五章 软件测试过程275.1对屏幕录制、屏幕回放的测试275.2对教师机和学生机自动连接的测试275.2对屏幕广播、教师端发布作业的测试305.4对提交作业的测试30第六章 总结与改进32参考文献33致谢34第一章 绪论1.1 开发背景计算机辅助教学改变了以往教学中形式单一,信息量小等等诸多弊病,多媒体辅助教学能实现个性化教育,发展被教育者的积极主动性,具有良好的视觉、听觉效果、丰富的知识表达能力等多种有点。随着全球信
14、息化进程的不断发展,教育信息化势在必行,多媒体教学正在逐渐成为主流教育形式。多媒体教学为学习者提供了更为丰富、优质的学习资源,必将对提高教学质量,转变教学观念以及推进全面教育产生了积极的影响。1.2 当前多媒体教学系统技术现状1多媒体教室随着教育事业的不断发展,教学改革的不断深入,借助计算机网络技术和多媒体技术,改变传统的教学手段,已成为各类学校改善教学条件、提高教学质量、强调素质教育、培养顺应新时期要求的高素质人才的共同需求1。现在多媒体网络教室将多媒体计算机同网络技术紧密结合起来,在网络教学的基础之上更强调电脑辅助教学功能。既教师利用网络多媒体教学平台直接在计算机上进行课程教学,并能将有限
15、的资源实现共享,达到一室多用,一室多能。多媒体网络教室在计算机网络的基础上,借助影音传输和控制系统,实现声音、图像等多媒体信息在计算机网络上的实时传输,使得各种文字、图形、图像、声音、动画等多媒体资料皆可用作教学素材,从而使得教学的内容和方式更加生动活泼、多姿多彩。传统意义上的多媒体网络教室包括计算机、网络设备以及操作系统。现代的多媒体网络教室还要具备教师和学生之间能够相互沟通、辅导和控制的多媒体网络教室平台软件。有了这样的平台软件,教师就能够向学生广播、转播屏幕内容和声音,并能够进行远程控制学生机,使教学更加方便。因此,一个完整的多媒体电子教室应包括:计算机 (pc):教师机 (服务器),学
16、生机;网络设备:网卡,网线,集线器或交换机等;操作系统:windows;其它设备:配件 (耳麦),应用软件,教学软件,机房设备 (防静电设备,稳压电源等)。多媒体教室的基本构成如图1-1所示:投影仪扫描仪放像机光盘库教师机服务器学生机学生机学生机学生机学生机 图1-1 多媒体教室教学示意图2多媒体教学系统 多媒体教学系统,可以将教师的屏幕画面和声音传输 (播)给所有或特定的学生,并可以监看学生的屏幕,控制学生的操作。教师与学生可以双向交谈,任何教学软件和多媒体声、像教学资料,均可以对学生实时播送和监看,从而达到多媒体的电脑教学的目的。多媒体教学系统,根据其设计原理和实现方式的不同可以归为三大类
17、:硬件实现方式、软件实现方式、硬件结合实现方式,以前两种为主。2(1)硬件实现方式硬件实现方式完全利用传输模拟信号的多媒体卡实现多媒体信号的传输。由于模拟信号在传输视频信息上具有得天独厚的优势,因此在图像的质量上,由硬件实现方式的多媒体教学系统更具有优势。由于采用专用的视频和音频控制芯片、控制电缆和控制台,多媒体教学系统的图像清晰、传送可靠,而且不依赖于计算机原有的硬件平台和软件平台。但由于采用专门的硬件设备,成本难以下降,由于使用专用的多媒体卡和线路连接使系统维护困难,系统升级困难,使用功能比较单一。(2)软件实现方式软件实现方式是指运行于底层数据网环境之上的,完全用软件来实现的多媒体教学系
18、统,多媒体的影音信号及控制信号均通过底层数据网进行传输。软件版的多媒体教学系统通过一套专门设计的软件,利用计算机网络,来实现原来硬件多媒体教学系统的所有功能。此方式的特点是成本低,无需添加其它附件,安装维护简单,软件版本容易升级,可实现多种功能,但由于图像传输需经过压缩/解压缩技术完成,故对计算机硬件配置及网络速度有较高限定要求。目前软件方式在图像和声音传输效果,尤其语音教学功能方面还有待于进一步提高与完善。(3)软硬件结合实现方式软硬件结合实现方式是通过在每台计算机中加装一块多媒体网卡,并用专门的多媒体传输网线将每台计算机串接起来,以此来实现多媒体影音信号的独立通道传输。这样就确保了影像的同
19、步全屏传输,并且对学生机的硬件配置要求不高,不需要加声卡,多媒体网卡上自带语音功能。此方式成本太高,而且由于多媒体控制信号仍需借助底层数据网实现传输,每台计算机中需安装软件驱动程序,整个系统安装、维护起来有一定的难度,需具有一定的网络知识。基于网络设计的软件多媒体教学系统是多媒体网络教室的发展方向。1.3 选题的意义本课题针对多媒体教学模式由传统的黑板教学模式向多媒体教学模式发展的新趋势,结合java在jbuilder平台成熟的技术,着重在于计算机汇集视听媒体于一身的发展,对多媒体教学系统做一些新的研究与应用。传统的电脑教室,一般辅以投影仪或硬件网络系统来建立多媒体教学系统,但由于高昂的成本和
20、一些其它的原因,并不是一般教室可以配备的,而且硬件设备耗损大、维护繁琐、升级麻烦都是令学校困扰的问题,而作为一种纯软件的解决方案的多媒体教学系统,完全避免了这些硬件问题,而且教师可以把理论教学与实践操作相结合,直接在教师机上进行各种教学演示,并且把每一步操作过程都与实时同步传送到学生的电脑屏幕上。各种大量的多媒体课件资料、光盘教学资源、实验演示系统、教学方法和经验等都可以借助多媒体教学系统软件这种汇集语言、图片、文字、动画于一体的现代交互式教学模式实现了。可以在整个多媒体教室共享文字、图像、语音、视频资料。这样,通过构建一种文字、语音、视频图像的相互交流环境,学生可以同时在自己的电脑屏幕上分享
21、各种教学资源,不但大大较少了教师端工作负担,提高了教学效率,而且也使教学内容及其生动活泼,学生乐于接受。目前,国内已经有一些相对成熟的教学软件,比如凌波多媒体网络教室软件和博智多媒体电子教室系统,这些软件都有很强大的功能,而且操作方便;但是,这些软件在市场上都有着昂贵的价格,而且操作系统依赖强。介于这些软件以上的缺点,本课题选择用一种更新更快捷的语言java来实现。并且是根据本校的实际情况,量身定做,使它更加符合本校多媒体教学的要求,以进一步提高本校多媒体教学质量。1.4课题目标多媒体教学系统利用计算机教室现有的电脑网络设备,实现教师机对学生机的广播、监控、语音教学等操作,辅助学生完成电脑软件
22、的学习和使用。多媒体教学系统适用于各类学校以及企事业单位、培训机构的电脑机房、计算机网络教室及电子阅览室中。本课题要实现以下功能:屏幕广播:实时传送教师或某个学生的电脑画面到某组或全体学生的电脑屏幕上,教师可以用这个功能进行多媒体课件的教学,演示word、sql数据库等软件的操作,还可以让某个学生进行示范; 屏幕录制:录制上课内容以便制作教学视频; 屏幕回放:对已录制的内容进行网络回放;教师端发布作业:老师可以把要布置的作业放到所有已经与教师机连接上的学生机上。学生端提交作业:学生可以把相应格式的文件发送到教师的电脑中;提问、回答与讨论:当老师向学生提出问题的时候,同学回答老师的问题,当同学有
23、疑问向老师请教的时候,老师帮同学解答问题;显示ip:显示已和教师机连接的学生机的ip;屏幕监视:让教师对选中ip的学生机的电脑屏幕进行实时监视,教师可以不离开座位就了解学生的学习情况,实现对整个网络上学生机的监控与管理; 在线人数:统计已经与教师机连接上的学生机数,以便老师了解学生到课情况;警告:教师机在对学生机进行屏幕监视的时候,发现学生没有按照老师的要求进行相关操作的时候,教师机可以使用命令对其进行警告;关机、重启、注销:可以把选中ip的学生机关闭、重启和注销操作。第二章 系统开发于相关技术2.1 java语言与开发工具2.1.1java语言的特性本课题选择java作为开发语言,因为它具有
24、面向对象、分布式、平台无关、高性能、支持多线程等特性。2.1.2 jbuilder的特点本课题选择jbuilder为开发平台,它具有以下特性:1jbuilder支持最新的java技术,包括applets、jsp/servlets、javabean以及ejb(enterprise javabeans)的应用。 2用户可以自动地生成基于后端数据库表的ejb java类,jbuilder同时还简化了ejb的自动部署功能。此外它还支持corba,相应的向导程序有助于用户全面地管理idl(分布应用程序所必需的接口定义语言interface definition language)和控制远程对象。3jbu
25、ilder支持各种应用服务器。jbuilder与inprise application server紧密集成,同时支持weblogic server,支持ejb 1.1和ejb 2.0,可以快速开发j2ee的电子商务应用。 4利用jbuilder可创建(没有专有代码和标记)纯java2应用。由于jbuilder是用纯java语言编写的,其代码不含任何专属代码和标记,它支持最新的java标准。 5jbuilder拥有专业化的图形调试介面,支持远程调试和多线程调试,调试器支持各种jdk版本,包括j2me/j2se/j2ee。 jbuilder环境开发程序方便,它是纯的java 开发环境,适合企业的
26、j2se开发。2.2 本系统采用的图像压缩算法本系统采用用软件编解码的方法对图像数据压缩和解压缩。在授课中屏幕图像变化率很低,有时屏幕电子教案可能要延用几分钟。这种运动图像信号,除帧内像素间相关外,帧与帧之间的像素值也有很强的相关性,且帧变化较平稳。若能利用帧之间的数据相关性,通过特殊变换,屏蔽帧与帧之间的变化,使之表现为大量连续相同数据,只保留差异,则使用简单高效的行程编码就能得到较高的压缩比。本系统对帧间编码使用了两种方案,一种是基于异或运算的帧间无损压缩,一种是基于差值量化的帧间有损压缩。1基于异或运算的无损压缩:利用异或运算性质可知,令x为时刻获取的屏幕图像的像素值,y为时刻获取的屏幕
27、图像的像素值,在传送端,对两幅图像的像素按位进行异或运算,相同的像素异或结果为0。如果帧与帧之间的变化很少,则会出现大量连续的0。再用简单的行程编码对异或结果进行压缩,可以得到较好的压缩结果。传输压缩后的数据,在接收端接收并解压缩,与上一帧图像像素再次进行异或运算可还原该图像。32基于差值量化的有损压缩:由人的视觉、生理、心理学的论证可知,肉眼对大面积图像能分辨出的灰度等级比对小块图像或细节部分的灰度等级大得多。亦即,如果相邻像素的色值差别很小,人的眼睛无法分辨,可考虑将相邻且相近的色值量化为1个色值。3第三章 多媒体教学平台的设计3.1 需求分析3.1.1 现有教学系统的问题目前,市场上现有
28、的网络多媒体教学系统成本相对较高,系统依赖性强,针对本校的情况,如果要在每一个计算机教室都安装这样的系统,那么超额的成本使这项工作难以进行。针对这个问题,研发一个具有自主知识产权的跨平台的多媒体教学系统是一项势在必行的工作。3.1.2 本系统功能模块分析本系统采用c/s(client/server)模式。学生机作为client(客户端),而教师机作为server(服务端)。教师机为学生机提供服务,并对学生机进行管理。本系统需要有教师机和学生机这两个部分,教师端功能:屏幕广播,教师端发布作业,屏幕录制,屏幕回放,屏幕监视,提问问题、问题答疑,显示学生机的ip,在线人数统计,网上聊天,发出警告,关
29、机、重启、注销;学生端功能:学生端提交作业,接受广播,接受监视,接受警告,接受关机、重启和注销,向老师请教问题等。功能模块如图3-1:屏幕操作显示学生ip显示在线人数屏幕回放屏幕广播屏幕录制屏幕监视远程控制发出警告远程关机联机讨论问题联机互动提问问题远程注销远程重启回答问题教师端教师端发布作业屏幕操作学生端联机互动接受警告接受远程控制学生端提交作业接受屏幕广播接受屏幕监视接受远程关机接受远程重启接受远程注销联机讨论问题向老师请教问题回答老师提问的问题图3-1 功能模块图3.2 系统基本结构本系统的设计主要是针对局域网内一台教师机和多台学生机的模型,教师机充当服务器的角色,学生机充当客户机的角色
30、,其系统的基本结构示意图如图3-2所示:图3-2 系统结构示意图3.3协议设计的模型基于udp多媒体转输协议设计的模型系统,与rtp/rtcp协议相比,系统设计的时候简化了排序处理等流程,同样采用了客户端/服务器模型。下面分别给出服务器的发送程序流程图和客户机的接收流程图,如图3-3和图3-4所示。否是是是否否开始获取一帧视频数据发送数据包头添加数据包头生成数据包头视频数据等分为若干数据包获取成功发送完毕结束结束图3-3 服务器的发送程序流程图发送端首先获取经过压缩的一帧视频数据,递交给udp分组处理。然后将一帧视频数据按照要求分解为适合网络传输的一系列小的数据包,并加上此协议的分组包头,其中
31、包括数据包的顺序号、时间戳,视频数据的压缩格式等参数,然后完成发送。发送端根据接收端反馈的延迟估计和接收质量报告调整发送速度。客户端从端口获取数据包后写入接收缓冲区。根据数据包头信息确认数据包是否丢失,做出相应处理。由于在发送端控制每个发送的数据包小于1024字节,所以在止常的网络状况下传输的延迟比较小。而且由于发送的数据包大小一样,并且严格控制数据包发送的时间间隔,传输抖动现象发生的可能性很小。所以,在客户端只按照接收到的数据包的序列号的顺序判断是否有丢失现象发生。如果接收的数据包是有序的,则认为没有丢失现象发生加果接收的数据包是乱序的,则作为丢失数据包处理。经过查阅相关资料证明了这种处理方
32、法是简单有效的。再接收到一个完整的帧数据的所有分组后,根据序列号是否连续判断是否发生数据包的丢失,分离数据包头,最后恢复成一帧完整的视频数据,再根据缩格式标记送往相应的解码流程。是否否是否是开始丢失这帧数据解码提示回复一帧数据分离数据包头写入缓冲区读数据包头序列号读出端口数据是否丢失数据接收完毕结束结束图3-4 客户端的发送程序流程图第四章 多媒体教学平台的实现4.1 屏幕录制由于屏幕截取比较接近操作系统的操作,在windows操作系统下,该操作几乎成了vc、vb等的专利,事实上,使用java jdk提供的一个robot类,来完成屏幕截取操作,更加简单。robot类的对象,可以完成对屏幕像素的
33、拷贝,完成屏幕图像截取操作。该类用于产生与本地操作系统有关的底层输入、测试应用程序运行或自动控制应用程序运行。robot类提供了一个方法:createscreencapture(),可以直接将全屏幕或某个屏幕区域的像素拷贝到一个bufferedimage对象中,我们只需要将该对象写入到一个图像文件之中,就完成了屏幕到图像的拷贝过程。循环这个操作,将一系列图像文件保存到硬盘上的某个文件夹中,这样就可以完成屏幕录制了,在本课题软件中捕获的是全屏幕区域。实现的流程图如图4-1所示:否是开始用robot.createscreencapture()进行图像捕获把捕获后的图像存放到图像数据缓冲区buffe
34、redimage图像编码保存成jpg格式录制完成结束通过fileoutputstream文件输出流往指定的文件夹写入图片关闭输出流睡眠40毫秒图4-1 屏幕录制执行过程流程图/取得当前显示器的分辨率:screensize = toolkit.getdefaulttoolkit().getscreensize();/获得屏幕大小rectangle = new rectangle(screensize); /可以捕获屏幕区域/实现录制过程的主要代码如下:while (true) try bufferedimage image = robot.createscreencapture(rectangl
35、e); /把捕获到的指定屏幕矩形区域图像存放到可访问的图像数据缓冲区image,createscreencapture捕获指定屏幕矩形区域的图像 fos = new fileoutputstream("c:records" + i + ".jpg");/创建一个文件输出流对象,往指定的文件里面写图片 /fileoutputstream创建一个向指定 file 对象表示的文件中写入数据的文件输出流 jpegcodec.createjpegencoder(fos).encode(image);/图像编码成jpeg fos.close();/关闭输出流 i =
36、 i + 1;/进行下一张的图片写入 thread.sleep(40);/每秒25帧,每40毫秒保存一张 当在主界面上点击“屏幕录制”按钮的时候,会弹出一个录制的对话框,效果如图4-2所示:图4-2 屏幕录制界面4.2 屏幕播放屏幕播放可以让教师预先录制好屏幕图像,以jpg格式的图片形式存储,以后通过“屏幕回放”功能可以进行播放,再现录制时的屏幕图像画面。这既可以方便老师提前备课,又解决了学生跟不上教学进度的问题,还可以让学生在课余的时间自己去温习上课的内容,极大提高教学效率这个功能是建立在屏幕录制之后的,把屏幕录制保存下来的一系列连续的图片调出来并与屏幕录制相同的速度显示在电脑屏幕上,这样就
37、可以看到之前录制的屏幕了。其实现的流程图如图4-3如下:否是开始取得要播放图片的文件夹从序号0开始取一张的图片把图片显示到屏幕上播放完成结束按录制时的先后顺序从0开始编号图片睡眠40毫秒取下一张图片图4-3 屏幕播放执行过程流程图实现的主要代码如下:public void run()int i = 0;/定义图片从序号0开始 while(true) try cimage = loadimage(i + ".jpg");/取得一张图片 i = i + 1; repaint();/重绘 thread.sleep(40);/与录像时每秒帧数一致catch(exception e)
38、 e.printstacktrace();/打印异常的消息 system.out.println(e); 当在主界面上点击“屏幕播放”按钮的时候,就会看到一个播放的对话框,效果如图4-4所示:图4-4 屏幕播放界面图4.3教师机与学生机的连接市场上的很多软件(如本校计算机教室用到的凌波多媒体教学软件),如果教师机比学生机先启动的话,后启动的学生机就连接不上教师机了。本系统克服了这一缺点:不管学生机先启动还是教师机先启动,教师机与学生机都能自动连接。本系统采用了套接字socket机制,分别在教师端程序和学生端程序里面写了一个连接文件clientsocket.java,这个就是克服以上缺点的重点方
39、法。而且程序里面用到一个端口和ip的构造函数,并没有对方机子的端口号和ip绑定,所以在运行软件的时候,不需要进行物理的设计端口号和ip。其实现的代码如下: public clientsocket(string ip, int port) /构造函数,ip地址和端口号 this.ip=ip; this.port=port; /创建socket连接: public void createconnection()throws exception try socket=new socket(ip,port); catch(exception e) e.printstacktrace(); if(soc
40、ket!=null)socket.close(); throw e; finally 创建了socket连接了之后,用方法getmessagestream()来取得消息流;当服务器窗口关闭或者关闭socket或者无法取得消息流的时候,用方法shutdowconnection()来实现断开连接。当实现连接后,学生端会显示:“教师端已经连接”,如图4-5右下角所示:图4-5 学生机实现连接后的界面图同时,教师端也会显示所连上的学生机的ip,如图4-6左上角所示:图4-6 学生机ip已显示的教师端界面图由于教师端和学生端用到的是同一个socket文件来实现连接,所以只有上面的程序,也只能实现教师机和
41、学生机的一对一的连接,根本无法实现一台教师机连接多台学生机的设想。因此,本系统在教师端程序中还采用了多线程机制,实现接收连接或者主动连接多台学生机。/创建广播通信:multicastsocket multicastsocket = new multicastsocket(6789);/加入广播组:multicastsocket.joingroup(inetaddress);4.4屏幕广播广播功能将教师机屏幕上的画面传输给所有学生机。教师在不进行额外设置的情况下,对桌面所操作的画面、屏幕播放的画面进行有效截取。屏幕的截取主要使用的是java.util.robot类来捕获屏幕,可以实现对屏幕进行一
42、个全屏捕捉,代码如下:public icon capturefullscreen() fullscreenimage = robot.createscreencapture(new rectangle( toolkit.getdefaulttoolkit().getscreensize();/捕获屏幕图像 imageicon icon = new imageicon(fullscreenimage); return icon; /把捕获的桌面图像以jpeg的格式进行存储:public void saveasjpeg(file file) throws ioexception imageio.w
43、rite(getpickedimage(),"jpeg",file);/将捕获的屏幕保存为jpeg格式的文件 public void write(outputstream out) throws ioexception imageio.write(getpickedimage(),defaultimageformater,out); /将捕获的屏幕保存为默认格式的文件图像信息进行在存储的同时也进行了快速压缩,在确保图片质量的同时降低传输的信息量。代码如下:/为等比缩放计算输出的图片宽度及高度double rate1 = (double) srcfile.getwidth(n
44、ull) / (double) width+ 0.1; double rate2 = (double) srcfile.getheight(null) / (double) height+ 0.1;double rate = rate1 > rate2 ? rate1 : rate2;int new_w = (int) (double) srcfile.getwidth(null) / rate);int new_h = (int) (double) srcfile.getheight(null) / rate);bufferedimagetag=newbufferedimage(new
45、_w,new_h,bufferedimage.type_int_rgb); /创建缓冲区图像bufferedimage的一个对象tag.getgraphics().drawimage(srcfile, 0, 0, new_w, new_h, null); /绘制缩小后的图newimage=new imageicon(tag);/设计压缩之后临时存放的位置:fileoutputstream out = new fileoutputstream("screen.jpg");jpegimageencoder encoder = jpegcodec.createjpegencode
46、r(out);/对输出流进行jpeg格式编码jpegencodeparam jep = jpegcodec.getdefaultjpegencodeparam(tag);/进行压缩质量的处理:jep.setquality(quality, true);encoder.encode(tag, jep);out.close();srcfile.flush();当图片处理完之后,采用udp传输协议对数据进行传输,有效地进行组播。本系统设计发送数据报文方法如下所示:public void sendmuticast(string s) try byte b=s.getbytes(); inetaddre
47、ss inetaddress=inetaddress.getbyname("");/组播组: datagrampacket datagrampacket =new datagrampacket(b,b.length, inetaddress,6789); /构造一个数据报对象,端口号:6789 multicastsocket multicastsocket = new multicastsocket(); multicastsocket.send(datagrampacket); /发送该udp 包。此时:只有该组中的成员才能收到该udp包 multica
48、stsocket.close() ; /关闭组播的socket catch(exception e) system.out.println("error in sender.java's sendmuticast"+e); 其组播流程如图4-7所示:是否开始关闭multicastsocket离开组播解码数据报提取信息等待接收数据报发送multicastsocket加入一个组播组建立multicastsocket创建数据发送完毕结束图4-7 组播程序流程图同时,用一个专门的广播线程,将屏幕广播发到学生端,其实现的代码如下:while(iswork) try scree
49、ncapture capture = screencapture.getinstance(); fafa.setscreen(capture.getfullicon(); /发送屏幕广播到学生端 fafa.sendimage(); fafa.sendteacher(); sleep(1000); catch(exception e) 广播发出之后,在学生端用函数screenbroadcastclient()来接收教师端的广播,其实现的代码如下:public screenbroadcastclient() mypanel=new mypanel(); this.getcontentpane().
50、add(mypanel); this.clock.start(); this.setdefaultcloseoperation(this.exit_on_close); 屏幕广播实现的效果图如图4-8所示:图4-8 屏幕广播效果图4.5 教师端发布作业发布文件功能主要是用于课堂上,当老师要给学生布置作业或者参考资料时,把相应格式的文件发送到所有连接上教师机的学生机上。发布文件功能的实现基本思路如下:1.教师端和学生端建立连接;2.教师端把要发送的相应格式的文件拷贝到教师机下面的临时文件夹中;3.教师端往学生端发送已经准备好可以下载的命令;4.学生端接收到教师端发送过来的命令后,调用方法主动从教
51、师端下载文件。发布文件流程图如图4-9,如下所示:否是是否是否教师端发送命令是否连接成功开始结束调用下载方法,主动去教师端下载udp发送是否关闭教师端等待学生端连接学生端接收到命令是否已下载完毕图4-9 发布文件流程图教师端主要代码:string filename=setfile.getfile();/获取文件名string ff=setfile.getdirectory()+filename;/获取文件全路径copyfilefrom(ff); /拷贝文件到本地目录/发送通知报文 string cmd="downloadhomework"/定义用于发送给学生端的"
52、downloadhomework"命令 cmdparser ss=new cmdparser();/声明了一个封装命令方法ss对象 string msg=ss.formatcmd(cmd,filename,getlocalip(),"student"); /定义msg信息 sendmsg kl=new sendmsg();/实例化sendmsg kl.sendmuticast(msg); /发送信息教师端的主代码中调用了copyfilefrom()方法,在copyfilefrom()中,定义了一个缓存区temp,教师端把将要发布给学生的文件临时存放到temp中,并
53、等待学生端来下载,在等待的同时,向学生端发送通知下载报文。学生端接收到通知后,调用下载命令去下载文件,主要代码如下:if(cmd.equals("downloadhomework")/如果教师端发布"downloadhomework"命令string filename=fafa.getcontent(muticastmsg); student.downloadhomework(filename);/调用downloadhomework()方法进行下来 downloadhomework()方法的重要代码如下:public void downloadhome
54、work(string home) /启动文件下载线程 string command="http:/"+this.teacherip+":8088/temp" httpdownload fafa=new httpdownload(command,home,this); fafa.start(); httpdownload下载方法的主要代码如下:byte b=new byte1024;int nread;dataoutputstream fileout=newdataoutputstream(newfileoutputstream(objname);while(nread=input.read(b)>0) ) fileout.write(b); fileout.close(); stu.modemsg.addelement("老师已经把作业"+objname+"发布到学生端在的文件夹!");在教师端点击发送文件时会弹出文件选择对话框,如图4-10所示:图4-10文件选择对话框教师端给学生端发布完文件后的提示对话框如果4-11所示:图4-11 发布完文件后的对话框当教师端发布完文件后,已接收到文件的学生端会在文本讨论区显示:老师已经把作业xx发布到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024版工程招投标与合同管理案例分析合同2篇
- 2024年度独家代理合同协议2篇
- 2024年度中介商务合作合同版B版
- 二零二四年度升旗台施工期间安全保障合同
- 2024年度电梯维保服务合同
- 二零二四年医疗器械研发与生产许可转让合同3篇
- 二零二四年广告设计及制作合同
- 2024年度服务器机房工程承包合同版B版
- 2024年度专业室内设计咨询协议3篇
- 2024年度水电设施维修保养服务合同2篇
- 机房工程验收方案
- 贵州省2024年中考数学试卷【附真题答案】
- 【中职专用】中职高考数学一轮复习讲练测(讲+练+测)4.2对数函数(原卷版+解析)
- 2024医师定期考核临床医学试题
- 纪念与象征-空间中的实体艺术课件
- 杭州市2024届高三二模(高三年级教学质量检测)英语试卷(含答案)+听力音频
- 教科版小学科学六年级上册《2.1我们的地球模型》课件
- 2023-2024年《夫妻贷款债务由一方承担合同样本书模板 》
- 高一英语必修一单句语法填空120题
- 应急预案监理实施细则
- 《互联网金融》教案
评论
0/150
提交评论