abstract:this article first makes a simple introduction to multimedia and multimedia creative tool,then it introduces the multimedia creative tool "mwt" developed by using vc++ object-oriented programming method,describes its functional features and developing principles。
keyword:multimedia creative tool、object-oriented programming method、mci
摘要:本文首先对多媒体及多媒体创作工具进行了简单介绍,然后详细介绍了用vc++面向对象程序设计方法开发的一个简易多媒体创作工具mwt的功能特点和实现机制。
关键字:多媒体创作工具、面向对象的程序设计方法、mci
多媒体及多媒体创作工具简介
在当今的计算机领域中,多媒体已成为其密不可分的组成部分。“多媒体”指图像、文本、影像、声音和动画等多种媒体的集成,这种集成将大大增强所提供信息的效果。没有了多媒体,通过计算机所进行的信息交流将大为逊色。
多媒体技术的基本特征是它的多维性、集成性和交互性。多维性是指多媒体技术具有的处理信息范围的空间扩展和放大能力。集成性则指多种媒体及其信息的集成。交互性是多媒体技术的重要特征,交互式多媒体技术使用户不再仅仅被动的接受信息,而且可以主动地参与到整个信息交流过程中去。
目前计算机应用已遍及到人们的生活、工作等各个方面,许多计算机专业和非计算机专业人员也经常需要制作自己的多媒体课件以在工作学习中进行更有效的信息交流和信息传播。如多媒体计算机辅助教学(mcai)技术就是适应这种需求的一种技术。而多媒体创作工具就满足了这种需求。
在多媒体领域,多媒体应用系统从体系结构上讲可划分为四个层次:第一层是直接支配各种专用多媒体设备的多媒体操作系统;第二层是基于操作系统之上的各种专用多媒体数据采集软件;第三层是供创作人员使用的多媒体创作工具;第四层是通过创作工具产生的最终多媒体应用产品。处于第三层的多媒体创作工具实际上是将底层所生成的各种媒体数据(图、文、音、像等)集成在一起生成面向最终用户的多媒体应用产品的软件开发平台。
多媒体创作工具一般具有以下四个基本功能:
导入。使用多媒体创作工具来导入用其他应用程序开发的图像、文本、影像、声音和动画等。
创建。使用多媒体创作工具,你能够设计、编辑、绘画、键入文本等。
集成。多媒体创作工具是你能够使用已有的图、文、音、像等资源,编排事件执行次序、定时、链接等。
交付。也即开发自运行的应用。
根据组织元素、排序事件和交付多媒体的方法不同,多媒体创作工具可分为四个基本类别:
● 基于时间的多媒体创作工具
对基于时间的多媒体创作工具,多媒体元素或事件是按时间精确展示和控制的。它可以每一个多媒体元素何时播放,以什么速度播放及它在屏幕上停留多长时间。gold disk的astound就是一个基于时间的创作工具的例子。
● 基于卡片或页面的多媒体创作工具
这类多媒体创作工具把多媒体素材按书的结构来组织,每一页中都可以集成多种媒体,任意页间都可以建立链接,具有很强的超文本功能,如toolbook、asymetrix和supercard。
● 基于图标的多媒体创作工具
基于图标的多媒体创作工具为多媒体开发人员提供了一种可视化的编程方法来在多媒体应用中按顺序排列事件。使用一个基于图标的多媒体创作工具,你能够通过从一个图标菜单中拖动图标,直观地表达事件的逻辑流程。macromedia的authorware professional是基于图标的创作工具的一个例子。
● 基于舞台的多媒体创作工具
其代表即macromedia director 5.0。director把多媒体元素称作班底成员(cast member)。班底成员在总谱中(score)演出、被定序和链接。
多媒体创作工具的开发
visual c++是一种非常完善和全面的程序开发环境,它采用面向对象的程序设计方法。visual c++的核心是microsoft基本类库(mfc),它一方面用类封装了windows api,另一方面使用称为“消息映射”的机制把windows消息和命令传递到窗口、文档、视图及其它对象。mfc能成功的把面向对象和事件驱动编程联系起来。
面向对象的程序设计方法将数据和过程封装在一起,方便维护,而且其继承机制可提高程序构造的效率和质量。用vc++我们开发了一个基于页面的多媒体创作工具,简称为mwt,它为用户提供了很强的交互性。下面对其进行介绍。
基本功能和结构
mwt可用来创作多页的多媒体软件,页与页可建立起超文本链接跳转关系。用户可随意增加新页,修改或删除已有页。mwt可生成独立运行的文件集,并支持打印和打印预览。mwt为用户提供了友好、简单、易用的中文界面。
mwt的主要窗口有文档控制窗口、文档编辑窗口和页编辑窗口。
在文档控制窗口中,用户可通过“文件”菜单中的“新建”菜单项创建一新文档,或通过“打开”菜单项打开一已有文档以进入文档编辑窗口。用户可同时打开多个文档。“退出”菜单项则退出程序。
文档编辑窗口提供了编辑和运行页的功能按钮和相应菜单项。可点击相应菜单或按钮创建新页、修改已有页、保存文件、在mwt下运行现有页、生成独立运行程序、察看帮助信息以及进行打印预览、打印设置和打印。
页编辑窗口是mwt的主要工作窗口。在mwt中,页是用户集成各种媒体的编辑单位,页编辑窗口是主要的集成环境。该窗口提供了进行页编辑的菜单项和相应工具条按钮。用户只要把鼠标在按钮上略微停顿,就可看到文字说明,用户很容易了解各按钮功用。主要按钮及功用如下:
文本按钮。选择该按钮后,在页编辑窗口中按下鼠标,即可在该处进行文字编辑输入。
图片按钮。选择该按钮后,在页编辑窗口中用鼠标拖曳出一个矩形区域,松开鼠标即弹出一文件对话框,供用户选择要加入的图片文件名。选择文件并确定,图片就显示在该矩形区域中。
声音按钮。用于加入声音媒体。
动画按钮。选择该按钮后,在页编辑窗口中用鼠标拖曳出一个矩形区域,松开鼠标即弹出一文件对话框,供用户选择要加入的动画文件名。选择文件并确定,运行时动画就在该矩形区域中播放。
导航按钮。用于定义热区,建立页之间的链接跳转关系。
此外,还有用于画直线、矩形和园的按钮及设置线宽、画线颜色、填充及填充颜色的菜单项。
对页中已有项可点击选中,进行再编辑或删除。
用户编辑完一页后,可保存并退出页编辑窗口,回到文档编辑窗口。
实现机制
mwt并未提供制作声音、图像和动画媒体的功能,它只是把外部制做好的媒体素材集成到一起。mwt充分利用了vc++的面向对象设计方法及windows的事件及消息驱动机制。
多媒体素材的外部制作。
目前有许多制作图片、声音、动画等媒体的专门工具,如用于制作声音的creative wavestudio,制作图片的photoshop,制作动画的3ds max等。mwt将媒体制作交给了这些专门制作工具,更好的利用了现有软件的支持。
mwt充分利用了面向对象的编程技术。
mwt将页做为一个类加以封装,用户生成的每一页即是该类的一个对象,它记录了页面的所有信息(音、像、文、热区等的个数和位置等)。而对于图片、文本、声音、动画和导航热区也分别从cobject派生了专门的类进行封装,出现在页面中的每一个图、文、声、动画、热区都作为相应类的一个对象封装了各自的特征存放在页面对象中。
mwt利用事件驱动机制来实现编辑和运行页时与用户的交互。
mwt创作的多媒体具有很强的交互性,需要用户的参与(用鼠标点击热区)来选择运行方向。mwt利用vc++的事件驱动机制,通过用户动作引发鼠标事件来实现这种交互。
利用windows的mci接口实现页运行中动画和声音的播放。
windows主要采用如图1所示的三个层次结构来实现多媒体设备的控制,应用程序与具体设备无关。mci包含在mmsystem模块中,是控制多媒体设备的高层命令接口。mci为各种媒体设备的控制提供了一个与设备无关、可扩展的虚拟接口,可提供高度的设备独立性。用户程序可使用mci控制标准的多媒体设备,如音频播放设备、视频播放设备等。
|
应用层 多媒体扩展功能
|
|
解释层 设备驱动调用
|
|
驱动层
|
图1
mci把一切与它通信的东西动当作mci设备,并不知道具体设备为何物,仅知道设备接受mci命令并响应不同形式的消息。不同类型的设备具有不同命令接受能力,对同一命令,不同类型设备的响应能力也不一样。应用程序通过mci设备类型区分不同的设备。常用的一些设备类型见表1。
|
设备类型 |
设备驱动程序名 |
描述 |
|
mpegvideo |
softpeg.drv |
mpeg视频解压设备 |
|
avivideo |
mciavi.drv |
avi动画演播器 |
|
waveaudio |
mciwave.drv |
音频波形文件播放器 |
|
cdaudio |
mcicda.drv |
激光唱盘播放 |
表1
windows控制mci设备需要基于设备类型的设备驱动程序。在system.ini文件中的[mci]部分包含一个设备类型列表,指明各种mci设备的设备驱动程序。常用设备的设备驱动程序见表1。
mci接口与mci设备之间进行通讯有两种方式:一是命令消息接口函数,二是命令字符串函数。mwt通过mci命令消息接口函数mcisendcommand()来播放声音和动画。
多媒体创作工具的展望
虽然商品化的、功能强大而完善的多媒体创作工具已有许多,但用户的需求方式更为复杂,尤其是一些非专业用户,他们希望的是一个简单易懂的创作工具。针对用户的需求,开发多样的多媒体创作工具也是多媒体创作工具发展的一个方向。mwt就是我们对开发简易多媒体创作工具的一个尝试。
|