Software 版 (精华区)

发信人: checcy (老巴夺), 信区: Software
标  题: VB多媒体程序设计(一)
发信站: 哈工大紫丁香 (Wed Apr  8 03:10:29 1998), 转信

                 VB多媒体程序设计(一)



□厦门 鄂大伟

Visual Basic for Windows(以下简称VB)是Windows下的应用程序开
发工具,它从根本上改变了传统的程序设计模式,可以处理文本、图
像、动画、声音等多媒体数据,因而被计算机界称为“最富有创新精
神的编程工具之一”。

本文假定你已基本熟悉VB的编程环境和简单的程序设计方法,介绍VB
多媒体编程的一些基本概念和方法,让你也能体验多媒体程序设计的乐
趣。如果你还未曾使用过VB(但肯定听说过),那么不妨赶快试一
下,它的易用性会使你很快掌握的。



一、Visual Basic编程概述



对于Microsoft Windows的用户来说,很少有其它产品能像VB那样激动
人心,其重要原因就是VB是第一个真正能让不熟悉Windows的人编写
Windows应用程序设计工具。许多人都认为Windows程序设计非常复
杂。其实,这只是针对用C或Pascal语言编写程序的人来说的。VB的出
现为我们开辟了一条通向Windows程序设计高手的捷径。

在Windows推出初期,能够用来开发Windows应用软件的工具只有
“Microsoft Windows Software Development Kit”,简称SDK。虽然
用SDK开发出来的应用软件对于用户来说是相当出色的,但对于程序员
来说却是一件困难的事。若使用SDK,程序员必须去编写创建窗口、菜
单、字体、对话框以及其它各种对象,即使是编写最简单的程序。因
此对于大多数人而言,使用SDK开发软件除了必须具备C语言的经验以
外,还要学习SDK提供的600个低层函数,然后方能进行编程,即使对
于专业程序员来说,这也是一项十分困难、费时的工作,这种复杂性
使得很多有兴趣进行Windows编程的用户望而却步。所以,有些程序员
调侃SDK是Super Difficult Kit的缩写,这或许有些夸张,不过也很
贴切地道出了使用SDK编程的复杂性。

VB的出现,彻底地打破了SDK塑造的神话。使得以往要使用SDK才得以
设计Windows应用软件的“石器时代”已经过去。通过VB,任何人都可
以享受Windows程序设计的乐趣。VB的“可视性”和“面向事件”的特
征是简化Windows程序开发的关键。简而言之,在VB环境下,程序员可
以用图表来开发应用程序,只要用鼠标进行选中或单击操作,就可以
从菜单中选中对象、控制项和属性等。它把600个Windows的应用程序
编程接口(API)中的大多数功能函数抽取到高层,这样允许程序员直
接使用Windows函数,如建立按钮、对话框、菜单等,而无须SDK。程
序仍然可以通过一个动态链接库(DDL)来调用底层的Windows API功
能函数。

VB的程序设计风格与传统设计方法不同,它是面向对象和事件的程序
设计方法。面向对象是近年来出现的程序设计技术,它是一种全新的
设计和构造软件的思维方法。在面向对象的程序设计中,“对象”是
系统中的基本运行实体。例如窗体和控件,就是VB的对象,VB中的对
象是由系统设计好提供给用户使用的。对象建立、移动、增删、缩放
操作也是由系统规定好的,这比一般的面向对象程序设计中的操作要
简单的多。

VB是采用事件驱动编写机制的语言。传统编程使用的是面向过程、按
顺序进行的机制,这种编程方式的缺点是写程序的人总是要关心什么
时候发生什么事情。而在事件驱动编程中,程序员只要编写响应用户
动作的程序,如选择命令、移动鼠标等,而不必考虑按精确次序执行
的每个步骤。当事件由用户触发、或由系统触发,对象就会对该事件
作出响应。

如果你掌握了Basic编程,这并不意味着你就会使用VB,因为VB中有许
多Baisc中所没有的新概念和新方法。从Basic到VB,最大的概念跳跃
是窗口,不是语言本身,以及应用程序开发中的图形化构思,而不是
面向代码的构思。

VB在多媒体应用软件开发方面有着良好的前景。目前多媒体制作工具
基本上可分为两类,一类是专为开发多媒体节目和电子出版物而设计
的所谓多媒体编著工具(authoring tools);另一类是通用的软件开
发工具,如Windows下的Visual Basic、Visual C++等。采用通用程
序开发工具的优点是灵活性高,软件运行效率高。在需要大数据量处
理及查询时常常采用通用程序设计语言,如百科全书类的节目大多是
用Visual Basic开发制作的。 之所以选用VB开发多媒体系统,主要是
可用专业版中所提供的MCI.VBX(Media Control Interface:媒体控
制接口)的控制对象。通过MCI.VBX,就可以用指令控制各种多媒体外
部设备并读取各种多媒体系统所需的文件格式。

虽然VB具有以上所述的种种优点,但与其它的一些基于Windows的编译
器(如Borland的C++或Turbo Pascal for Windows)相比,后两种
语言也有比VB语言出色的地方。

首先,C++和Pascal为我们提供了更多对计算机的控制,可以用来实
现对计算机底层功能的控制和调用,因而可用来设计系统软件。例如
BELL实验室用C来编写UNIX操作系统,苹果公司用Pascal 编写
Macintosh操作系统。而若用VB写操作系统的话,就好比乘热气球登月
一样困难。

其次,VB的Custom Control(用户控制对象)概念是近来导入市场非
常成功的对象控制技术,但目前VB还无法建立自己的用户对象。

第三,C++和Pascal提供了可移植的交叉平台,像IBM、Macintosh、
Amiga,直到VAX小型机和Cray巨型机,都可以运行C++和Pascal程
序,而VB目前还只能在MS DOS和Windows下运行。

尽管VB还不是尽善尽美,但瑕不掩玉,随着VB版本的不断升级,我们
相信其性能会更加完善。



二、 MCI程序设计初步



设计多媒体程序,关键是对多种媒体设备的控制和使用,在Windows3.1
和Windows95系统中,对多媒体设备进行控制主要有三种方法:

  第一种方法是使用微软公司窗口系统中对多媒体支持的MCI,即媒体
控制接口,MCI是多媒体设备和多媒体应用软件之间进行设备无关的沟
通的桥梁。在Visual Basic 3.0和4.0版本中,MCI都得到了很好的支
持。

  第二种方法,通过调用Windows的API(应用程序接口)多媒体相关函
数实现媒体控制。

  第三种方法是使用OLE(Object Linking & Embedding),即对象链接
与嵌入技术,它为不同软件之间共享数据和资源提供了有力的手段。



下面分别介绍如何利用这三种方法进行多媒体程序设计,首先介绍MCI
的有关概念及MCI.VBX控件的使用。

  1.什么是MCI

MCI(Multimedia Control Interface)是微软Windows定义的多媒体接
口标准,MCI 接口包括了CDAudio(激光唱机)、Scanner(图像扫描仪)、
VCR(磁带录像机)、Videodisc(激光视盘机)、DAT(数字化磁带音频播
放机)、DigitalVideo(窗口中的数字视频)、Overlay(窗口中的模拟视
频叠加设备)、MMMovie(多媒体影片演播器)、Sequencer(MIDI音序设
备)、WaveAudio(波形音频设备)、Other(未定义的MCI设备)等多媒体
的主要产品,支持环境是Windows 3.1及Windows 95版本。MCI的最大优
点是应用系统与设备无关性,对于标准多媒体设备,安装相应的
Windows的MCI Driver,Windows即可对该设备进行操作访问;对于非标
准的多媒体设备,只要有厂家提供所配的MCI Driver也一样可以操作。
由于MCI与设备的无关性,程序员在多媒体应用系统的开发中,无需了解
每种产品细节,就能开发出通用的多媒体应用系统。那么在VB中如何使
用MCI呢?它是通过VB控件提供的功能来实现的。

  2.VB的控件

VB中附有许多具有特定功能的控件(Controller),而每个控件都可以
创造具有特定用途及功能的对象。要想利用VB进行多媒体程序设计,
必须熟悉和掌握这些控制的作用和功能。在VB中,大部分的控件均放
在工具箱中,每个控件由工具箱中的一个工具图标来表示。

工具箱中的工具分为两类,一类是VB本身固有的,一类是扩充的。由
固有的工具组成的工具箱称为标准工具箱,工具箱可以扩充,以便把
更多的工具包含进来。为在工具箱中增加一个扩展控件,必须装入相
应的控件支持文件,其文件的扩展名为.VBX。当某个扩展控件增加
后,该文件的名字就出现在项目窗口中。项目窗口中的.VBX文件只与
扩展控件相对应,标准控件没有与之对应的.VBX文件。

  3.MCI.VBX的使用

MCI.VBX是在VB专业版中所提供的一个控制对象。VB借助于此控件的配
合来达到控制多媒体设备的目的,是用户对多媒体对象进行控制的一
种最简单、最容易的方法。一般在安装完VB专业版时,会将这个控制
对象拷贝到Windows下的System子目录里。在使用MCI.VBX 之前,应首
先安装并设置好多媒体的系统环境。 

当我们进入VB3.0时,ToolBox(工具箱)中并不会直接出现MCI.VBX的
图标。这是因为AUTOLOAD.MAK这个“自动载入”文件没有将其包含进
来。在VB的目录中找到这个文件,然后用Windows的书写器进行编辑,
将“MCI.VBX”加在AUTOLOAD.MAK文件的未尾。也可以选择[File]菜单
下的[Add File]选项,将Windows\System 子目录下的MCI.VBX加进
ToolBox后,才能在VB中控制多媒体外部设备。将MCI.VBX加入到
ToolBox之后,你就可以看到ToolBox尾部已经增加了一个图标。

  4.MCI.VBX的控制按钮

如同使用其它控制对象一样,首先以鼠标双击ToolBox(工具盒)的
MCI图标或拖至Form(窗体)上, 并调整好Form的大小,这时我们可
以看到,在窗体上(Form)上出现了九个按钮,这就是多媒体控制对象
的外观。

MCI控制按钮定义如下:Prev(移前标)、Next(移后标)、Play(播放)、
Pause(暂停)、 Back(倒移)、Step(前移)、Stop(停播)、Record(录
制) 和 Ejec(退出)。使用MCI控件方法如下。

(1)MCI控件在设计或运行时可以是可见或隐藏的;其按钮功能也可以通
过单击鼠标Click事件重新定义。

(2)需要使用MCI按钮功能时,必须将该按钮的属性(Visible和Enabled
)置为True ;若不需要该按钮时,必须设计Visible为False;若使该按
钮功能当前无效时,设计Visible为True,Enabled为False。

(3)MCI 扩充版支持一个视窗控制多个MCI 设备。

  5.初试MCI.VBX 

在MCI.VBX的支持下,我们对多媒体设备的控制过程简单得令人难以置
信,下面我们先创建一个CD音乐播放程序来体验一下。

在Form_Load()事件过程中加上下面两行代码:

MMControl1.DeviceType=“CDAudio”

MMControl1.Command=“Open”

另外,我们在Form_unload事件过程中,加上一行代码:

MMControl1.Command=“Close”

在以上代码中,MMControl1是系统内定的媒体控制对象的名称,可以
自行更改。MMControl1.DeviceType=“CDAudio”的作用是指定多媒体
设备的类型,因为 我们要播放CD唱盘,所以指定设备类型为
“CDAudio”。MMControl1.Command=“Oper”指令表示打开指定的设
备,而 MMControl1.Command=“Close”表示关闭一个已打开的设备。

运行这段程序,播放按钮变成了黑色。将CD唱盘放入光驱中,我们只要
按下[Play]按钮,就立刻可以听到美妙的音乐在你设计的播放器控制下
播放出来,体验这意想不到的喜悦吧。你可以更换一下波形文件名或
者将DEVICETYPE变为“WaveAudio”(音频音乐)、“AviVideo”(.AVI
动画)、“Sequencer”(.MID音乐),就会有一种无所不能的感觉。(待
续)

[LM]

-- 
*********************************
Chengyan Che - Software Freelancer
Harbin, P.R.China
mailto: checcy@public.hr.hl.cn
ICQ: 5116726

--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: checcy@public.hr.hl.]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.983毫秒