电教中广播教学模块设计

时间:2022-07-20 03:03:11

导语:电教中广播教学模块设计一文来源于网友上传,不代表本站观点,若需要原创文章可咨询客服老师,欢迎参考。

电教中广播教学模块设计

多媒体电子教室能够实时进行多媒体教学任务,实现屏幕广播教学、文件传输、电子举手、语音教学等功能;同时还能管理和监控学生机,完成监控转播、遥控辅导、黑屏肃静等功能。其中,广播教学是多媒体电子教室最基本和最核心的功能。

一、广播教学功能分析

广播教学功能就是将教师机的电脑屏幕画面和语音等多媒体信息实时传送广播给全体、群组或单个学生,可对单一、部分、全体学生广播,广播过程中可动态增删被广播对象。教师还可以将该学生机屏幕广播给其它学生,让学生之间分享创意和成果,教师机可结束和停止广播教学。

二、广播教学功能的设计和实现

广播教学屏幕传输的具体实现主要有抓取屏幕、屏幕压缩、网络传输、数据解压、屏幕绘制五个步骤,如图1所示。

(一)抓取屏幕

抓取屏幕上画面的实现方法是基于上层Windows的GDI(GraphicalDeviceInterface)函数截屏。WindowsGDI的一个重要部分是DC(设备描述表),当Windows应用程序把输出显示到设备上时,就会用到DC里面所存储的信息。如果设置一个定时器,每隔一定的时间获取屏幕的图像,就可以获取连续变化的动态视频了。其工作原理是这样的,首先设置屏幕尺寸宽、高,创建一个位图对象,位图对象的尺寸与屏幕尺寸相同,再获取当前的显示设备描述表,然后创建一个与之兼容的内存设备描述表,将事先建立好的位图调入内存,再用Windows提供的APIBitBlt()将当前显示设备描述表的内容拷贝到内存设备描述表,这样就把屏幕上的内容抓到内存的位图文件中了,最后,释放当前的显示设备。

(二)屏幕压缩

屏幕图像的变化频率较小,通过对一般屏幕操作进行试验后发现,每秒3到5帧的采样频率,就能把服务器端屏幕的变化及时或实时反应到客户端的屏幕上。为实现屏幕共享,在数据传输上可以采用较低的采样频率。屏幕的变化一般集中在某一部分,整屏信息的变化相比则较少。利用这一特点可以对屏幕图像进行分块,只传输变化的块,这样就可以有效的降低传输流量。屏幕图像相邻像素间的差异较小,可以近似的用一个像素点校验其周围N个像素点是否变化。在较短时间间隔内的两帧屏幕图像存在着较强的相关性,只要找到这两帧图像的不同部分并且发送不同部分,其余部分不发送,这样就可以大大减少传输的数据量。

(三)屏幕图像的网络传输

屏幕图像的传输其实就是这些屏幕图像数据流在网络上的传输,在传输屏幕数据时,采用的是无连接的UDP方式传输的。通过之前的分析知道,传输数据时,只需要把有变化的区域发送给学生机就可以了,将这些数据暂时存放到一个数据结构ScrMode结构体里。教师机使用IP组播方式将结构体ScrMode发送到组播组内的所有学生机。

(四)数据解压和屏幕显示

在学生机端,程序设置有一个组播端口,学生机程序利用该端口侦听消息,当教师机端广播教学命令后,学生机端侦听到该消息,立刻建立接收线程,以便随时接收教师机端发送来的信息。学生机端设有两个线程:监听线程(监听接收教学信息),屏显线程(图像解压缩和还原显示)。经过分析得知,服务器端传输之前已经把大量的冗余图像信息过滤掉了,所以在学生机端就不再判断冗余了。学生机端只需要:创建1024×768的BMP格式的全屏图像;读取收到的图像数据包的数据ScrData,此时的数据为JPEG格式,由于屏幕图像一般是BMP格式,所以学生机端程序要把接收到的JPEG格式图像解压缩成BMP格式;SequenceNumber记录了发送数据块在整个屏幕中的位置,所以读取SerialNum的值就知道了该数据块在整屏数据中的位置,将数据块ScrData写入学生机屏幕SequenceNumber处的对应位置;屏幕图像中部分数据区域是空白的,说明该块与上一屏数据相同,直接读出上一屏对应位置的数据块,填入空白区域,直接将屏幕图像写入显存。

多媒体电子教室代表了电脑教育多媒体、网络化的发展方向,目前已成为现代教育技术的一个重要体现,它的应用,势必会带来许多新的教学理念和教学模式的变革,本文对广播教学功能的研究有一定的借鉴意义。