说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

利用VB进行多媒体程序设计初步

HTML文档下载 WORD文档下载 PDF文档下载
利用VB进行多媒体程序设计初步
VB(Visual Basic)具有很强的多媒体处理控制功能,VB的多媒体控制MCI(Media control interface)包括一套控制音频和视频设备但具有与设备无关的命令,用它来进行多媒体设计是很方便的。比如:你也许想拥有一个自己编写的CD播放器,那么利用VB的MCI只需写几行代码就可生成一个功能比较齐全的CD
播放器。下面简单谈谈用VB的MCI进行多媒体设计的初步知识并给出一个非常简单的CD播放器的例子。
在使用MCI之前必须安装好多媒体设备如声卡、CD—ROM等以及这些设备的驱动程序,否则MCI将不听指挥。

一、MCI控制的安装
MCI控制在VB不同版本中的安装方法是不一样的。在VB 3.0专业版中,MCI控制文件为MCI.VBX,在VB 4.0中MCI控制文件为MCI16.OCX(16位)、MCI32.OCX
(32位)。一般情况下MCI控制在启动VB之后并没有加入到工具箱中(TOOLBOX),需要自己动手安装它。

1.VB 3.0中MCI的安装。打开VB的FILE菜单,选择Add File项,从Windows\system目录下找到MCI.VBX,选择OK即可,这时你将发现TOOLBOX最后又多了一个工具,这就是MCI。如果你经常要用它,建议在VB目录下找到Autoload.mak 文件,用字处理软件打开它,把MCI.VBX添加在其中,这样每次启动VB时就将其自动调入。

2.VB 4.0中MCI的安装。VB 4.0支持16位和32位两种系统,在WINDOWS 3.1下只能使用16位系统。MCI不能和VB 3.0中一样用Add File调入,如果你这样做将会发现系统提示错误,需在Autoload.mak文件中调入。笔者打开Autoload.mak文件后发现调用格式为:OBJECT={序列号}#1.0#0;文件名,不知道MCI16.OCX的序列号是无法安装的。幸好在VB目录下的子目录SAMPLE下有一个MCI的子目录,进入它可以看到有一个MCITEST.MAK文件,打开它可以看到有:Object={C1A8AF28-1257-101B-8FB0-0020AF039CA3}#1.0#0;MCI32.OCX一行(也许您的序列号不一定和这相同),将这一行复制到Autoload.mak文件中即可。由于本人使用的是WINDOWS 3.1,在安装VB 4.0时32位系统无法装入,硬盘中根本没有MCI32.OCX文件,VB何以将MCI32.OCX调入呢?经试验发现VB以序列号选择文件,可能上述序列号是MCI16.OCX文件的序列号,进一步试验发现即使将序列号后面的MCI32.OCX去掉也可调入,这进一步说明了VB 4.0中一个OCX文件有一个对应的序列号,因此绝对不能改变序列号,否则将无法正确调入所
需的文件。MCI 安装完毕,用鼠标双击工具箱的MCI图标,如果在Form中出现9个熟悉的按扭,那么安装就成功了。

二、MCI的属性和事件
MCI提供许多关于MCI控制方面的属性和事件。比较常用的属性有:
Button visible 决定该按钮在MCI控制中是否可见。
Command 要执行的MCI命令,如Open Close Play Stop Eject等。
Device Type 要打开的MCI设备类型,如动画播放设备、MIDI序列发生器、激光视盘机、WAV文件播放器、录相机等。
Filename 使用Open命令打开或Save命令保存的文件名。
Length 确定一个文件或CD唱片的长度。
Track 指定特定的轨道,供Tracklength和Trackposition使用。
Tracks 当前MCI设备的轨道数。
Tracklength 在当前时间格式下,传回Track所指轨道的时间长度。
Trackposition 在当前时间格式下,传回Track所指轨道的起始位置。
Visible 决定在运行时刻多媒体MCI控制是否可见。

比较常用的事件有:
Buttonclick 当用户在多媒体MCI控制的按钮上按下或释放鼠标时产生该事件,
每一个Buttonclick事件缺省执行一个MCI命令。
Buttoncompleted 当多媒体MCI控制按钮激活的MCI命令完成后发送。
Statusupdate 这个事件可监测目前多媒体设备的状态信息,比如用滚动条来表示当前轨道的位置。详细的属性和事件的用法请参看控制帮助文件。

三、CD播放器的例子
对初学者来说,能利用入门知识编写一个的成功小程序是很鼓舞人心的,下面我们来编写一个非常简单的例子:迷你CD播放器。在MCI调入Toolbox之后,双击MCI工具,将会在Form中出现9个按钮,用鼠标移动这些按钮至合适的位置,然后双击Form窗体,把下面的代码加入到事件中:

Sub Form_Load()
MMControl1.DeviceType = “CDaudio" 'MCI设备类型为CD唱片
MMControl1.Command = “open" '打开设备
End Sub
Sub Form_Unload(Cancel As Integer)
MMControl1.Command = “close" '退出时关闭MCI设备
End Sub
保存文件,在CD驱动器中放入一张CD唱片,然后运行,你将发现九个按钮中Prev、Next、Play、Eject四个按钮变黑(有效状态),点一下Play按钮,音乐出来了!若驱动器中无CD盘则所有按钮都处于无效状态。这样一个简易CD播放器就完成了,它具有四种功能,但自己动手写的代码只有上面加注释的三行。这个CD播放器有点太简单了,下面就看你的了,你可以加入一些文字信息如开发时间、作者、版权等,再进一步学习MCI可加入其他功能如显示播放时间、曲目等。
启动时禁止装入 Add-Ins -VB资料 让Timer控件每5分钟触发一次事件 -VB资料 让程序启动快一点 -VB资料 VB如何调用系統的【查找】、【替换】的对话框? VB如何动态新增、移除 ODBC DSN? VB如何读取 Picture 内任何一点的颜色值? VB如何获取硬盘卷标、序列号和文件系统类型? VB如何判别程序是在Win95或NT下执行? VB如何启动控制面板? VB如何取得磁盘序列号? VB如何让Window不接受键盘输入及Mouse Click VB如何让程序拥有多个热键? VB如何让用户自行输入方程式,并计算其结果? VB如何使程序不在Ctrl+Alt+Del弹出的对话框内? VB如何使用 VB 编写自动反安装的程序? VB如何用VB建立快捷方式 VB如何用VB在桌面建立快捷方式 VB如何在 VB 中控制 Modem 行为? VB如何在VB中判断Windows9x的运行模式 VB如何在Visual Basic中实现异步执行程序 VB如何在开机时自动更换墙纸? 使回车具有 Tab 的功能-VB资料 输入时,自动转换成小写? -VB资料 显示多媒体信息 -VB资料 也谈Windows 下的自动存盘 -VB资料 一个小巧精致的CPU监视器 -VB资料 应用VB4.0实现工业控制的实时曲线和历史曲线 应用程序中实现关机功能-VB资料 萤幕抓取与萤幕保护程式 -VB资料 用VB5.0创建Windows快捷方式 用VB5.0收集键盘和鼠标信息 不知是程序写多了还是失恋的缘故!我头上有一块地方不长头发了,医生说是斑秃!不知程序员里有斑秃的吗? 一IT美女的悲惨遭遇◎! .net2003的编译器如何为类添加消息映射啊???? JAVA的文本编辑,实现修改和排版 Jmai发送邮件问题? 高分求c++ test 我成功配置了一备用数据库,与主库连上了,可是主库坏了,我怎么打不开备用库啊? (SDK)怎样用SendMessage函数反选一个checkButton control(checked->unchecked)呢? 求救,为什么关于VB的帮助的事例看不到? 有拒绝爱情的吗?我还在念大学 做一个不是很大的网站,是用类好,还是用模块的好? 如何对本地机的共享文件夹设置密码 一个讨厌的QQ木马网站如何防治,最好有人能黑了它! 谁写得有能随机生成数字和字母的函数,借来用用? 快速排序的问题。求救 使用 CDatabase 读写 excel 文件的问题。 水园的朋友们,你们好!!!学校的网页!!! how can I show the correct word? 我的机出现了网络重名~~改IP也没用 庐山印象(ZT)----让我想起我小学写的作文哦!看了会起鸡皮疙瘩的! 请问谁有avphone控件3。0的破解版 学校的网页!!!! 500分! 求win2k下探测和阻塞ping的源码. 有关CASL的一个菜问题,请各位帮忙看一下 关于window.confirm的问题,简单问题解决后既散分 请问doc,pdf等文件在iframe中的显示 怎样给datagird的列定义标题? 怎样判断一个文件是否存在呀? 超市系統的報價?? 如何取得类名为#32770的窗口句柄? 我在web.xml里这样设置首业为什么不可以? 请问AMD的CPU对现在市面上的各种软件都能兼容吗? 电脑操作过程中,有时会弹出一些非法操作的窗口,如何把它保存下来? asp中调用javascript的小问题, 今天终于有时间,想看《黑客帝国2》,哪位提供一点信息? 显卡和声卡的作用不太清楚? 请提供结构化布线的下载地址,谢谢! DataList的绑定内容怎么出不来? VB、ASP或相做软件销售的有志创业者,请与我联系 想做一个分页的程序。如何让jdbc 每次只返回20条数据? 小弟想考MCAD,高分寻求指点。 求jbuilder 4.0 序列号 XP上没有待机的选项怎么设置 如何将weblogic7的jdk换成1.4.2? 请问C#怎样实现可拖动的工具条 VB、ASP或相做软件销售的有志创业者,请看 朋友想开一家软件公司,您能为它取一个好听的名字吗? 小弟想考MCAD,高分寻求指点。 TDC数据岛中有个SORTCOLUMN属性设置排序,XML数据岛中不能用该属性? 福建的it业朋友进来报一下money状况啊 这是什么错误? 名言名句.最宝贵的东西_________ 在培根随笔中, 英文短句改错1、He go to the Zoo by bus.2、How old are your grandpa?找了半天也不知道哪里错了……望大哥大姐帮帮忙! 【历史题】孙悟空大闹天宫时是什么朝代?要根据那个回答明代的 你妈的13 孙悟空是唐朝的 n的平方+(n-1)的平方+(n+1)的平方=245怎么算? n的平方+5n-500=0 两种方法 单句改错和英文短语1.All the students are bored with his bored speech._____2.We usually have some bread and a glass of milk with breakfast._____3.His was such good a plan that we all agreed to accept it._____4.Why don't try something differen 爸爸把钓来的一条大鲤鱼分成前、中、后三段,中段的重量恰好比前、后两段重量的和少1千克,后段重量等于中段重量的一半与前段重量的和.只知道前段重2千克,你能算出这条鲤鱼的重量吗?( 爸爸将钓来的一条大鲤鱼分成前中后三段.中段重量恰好比前后两段重量的和少1千克,后段重量等于中段重量的一半与前段重量的和.只知道前段重2千克.这条大鲤鱼重多少千克? 罹癌是什么病 世上什么东西最宝贵? 巴基斯坦一亲政府部落长老与6名家人被中国拟规定城镇更新须经项目区内90%签证系统落后致损失57.9亿元 澳旅普京与国际奥委会主席参加索契火车站开法国奥塞美术馆打破艺术禁忌举办“裸男西班牙一煤矿瓦斯泄漏致6人死 直升机浙江环保人:做守护碧水青山蓝天的忠诚德国农场主检查马厩 发现自家马匹驮回瑞士引将进新技术 加强政府成员通信安日自明党提议福岛核电站追加除污费应由英媒称中国应对气候变化态度积极 民众“假王娜娜”案3人移交司法是倒逼政府的难得机会家居文化与书画艺术精彩约会太行木业:有志于中式家具与 家居装“国美酒业集团二十国驻华使节·寻美中黄金五一来十渡,低空飞行引潮流遇旧识景山公园首设“门禁”母婴室“中国居民金融能力调查”启动QUHD TV量子点电视蓄力五一 T好基金经理 应擅长“择时”狂人日记之明星档案初代吸血鬼美女们小心手机无梦仙途痞商传奇圣剑除魔录帝权在握吕氏外戚机械龙战士大玄武玩转韩娱传佛手山旅游威虎山城旅游杨子荣烈士陵园旅游大同火山群旅游湄南河旅游龙山旅游兰屿旅游大赛车博物馆旅游石家庄植物园旅游东水关遗址公园旅游昭君村旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘