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

利用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可加入其他功能如显示播放时间、曲目等。
雅虎COO Henrique de Castro因业绩不佳被解雇 分析比特币背后的数据算法,抢占背后巨大市场先机 美食菜谱将会成创业风口的两大理由 Windows XP杀毒软件更新 将被延至2015年7月 小心,商家已经盯上你了 一软一硬 让你时刻保持清醒的可穿戴产品 寓教于乐 贝瓦依托移动平台打造中国式儿童“轻教育” 中科创达:CES2014上的中国红 SA:2014年移动互联网十大技术创新预测 回顾2013:HBase的提升与挑战 Google打造云中Hadoop便捷版,强势对抗AWS 【信息图】专业Web设计师和业余设计师的发展状况并不协调 先试后买:Agawi推新型广告服务AppGlimpse 搜狗CEO王小川:“硬件免费”是误区 平均比Hive快24倍,Impala剑指Stinger 利用ElasticSearch和Redis检索和存储十亿信息 微软高管再度失血 媒体及娱乐副总裁因内部重组离职 Google研制智能隐形眼镜 帮助病人监测血糖指标 盘点2013:最优秀的HTML5&CSS3设计【多图】 AMD:未来PC将同时搭载Android、Windows双系统 如果你是CEO,你打算给自己开多少工资? IBM X6架构中国首发,目标是云与大数据 Pivotal聘用eBay前副总裁,继续发力云计算市场 智能手机的功能越来越复杂,可惜用户不买账 一周消息树:Windows 9要来了,会有哪些改变? 简单几步解决IE11无法显示此页的问题 研发周报:Java 8最终发布日期敲定,即使有bug也要发布 一周云热点:Google打造云中Hadoop便捷版,强势对抗AWS 追溯Unite大会设计理念 感受Unity进化史 移动周报:仰望大神,不如退而探索! 腾讯发布QQ浏览器微信版 支持拖拽分享、消息提醒等功能(图) 字符输入老是重复怎么回事 请问谁用C++编写过MP3的程序? 请问各位高手,给小弟介绍几个比较好的计算机图书的网站吧。 Access 2000不识别{ts '2001-06-21 21:14:01.890000'}中的.890000,如何解决? 如何得到webbrower控件下载消息?(比如下载*.zip文件) 难题一条 MTS怎么只能生成*.pak 和*.dll,却不能生成Clients子目录及在客户端安装的*.exe COM组件安装! PB 的新问题,有性趣请进!!!! 新手,键值问题 这样的问题没人会????? 大家帮忙看个程序 ACCESS数据库的小问题。 怎样使自己的问题成为热点问题的绝招! 关于c++builder中scanline的应用 跨数据库查询,请教各位高手! 这样的问题也没人会????????????????? 如何使用QuickRep制作简单报表?不牵涉任何DataSet的 关于Transaction的问题 请问 ListCtrl Item里的 Checkbox 被点击时对应的消息是什么? 100分~~100分~~高分求购。。。我也‘倾家荡产求购优秀系统分析案例’(paste from yyzh)。。。100分~~ 全中文的用Rose做的实际项目的UML模型! 救命!!我的机器不能下载东西了,怎么回事?? 求教邮件编程问题,邮件客户端如何实现“在服务器端保留备份的功能“? ciscoworks 各位大哥大虾,VC下如何用ADO连SQL SERVER?(急) ShellExecute和CreateProcess有什么区别? 关于海量数据、最有效率的排序、硬盘缓冲与映射、专业数据库的讨论 如何用VB编启动是可以带参数的程序呢?(例如:我自定义了一种文件,双击用我的程序打开,程序自动会打开这个文档 昨天我过生日,今天分蛋糕给大家 请问哪有《java图形设计2Swing篇》可以下? 我要用一个数据库去实时访问另一个据库,我该怎么办 URLghj1976@csdn.net----别吓我,有请您老人家! 谁给我介绍一下sql server7.0教材的比较好的下载网站,我给他20分。 我都急死了,到搜索引擎里搜到的好几个站点都不能用,到底哪儿可以当到3DMAX? 谁有写的比较好的邮件收发程序? 一个微软证书的私钥问题 微软证书的私钥问题 求助,简单问题 男人最快乐的十个瞬间! solaris下装oracle8.1.6遇到jre环境问题 怎抹加分?我准备给别人加40分,可我最多只能加20,请问另外20分怎末加分,为此我可能已得罪了一些人了。 请教下载的问题 如何在运行时动态修改Quick Report的打印机设置? 怎样做一个接受拽拖的LISTBOS(例如,把资源管理器里的文件拖到上面,就自动增加一项 ,就是拖的文件名) 怎样才能隐藏在ctrl+atl+del中进程列表中的项目啊 用C写DLL 请问:airhorse(编程至尊宝),infopower3000的注册码可以用于商业目的吗? 结构化异常处理 linux下如何配置内置Mondem? red hat linux7.0下安装oracle8.1.6遇到问题 (2-根号3)的2013次方乘(2+根号3)的2014次方是多少?这种题怎么算? 试求代数式2x的平方+x-3的最小值,并求出当x取何值时,该代数式取到最小值, 已知x-1=根号3,求代数式(x+1)^2-4(x+1)+4的值 (7-5根号2)的2013次方乘(-7-5根号2)的2014次方 利用配方发求:当X取何事,代数式2X^2-4X+6有最小值,是多少?代数式有最大值吗?为什么? 已知x=根号2-1,求代数式x/x-2÷(2+x-4/2-x)的值 (根号3+根号2)的2013次方×(根号3-根号2)的2014次方 代数式2X的平方-4X+1的最小值为多少 当X=2-根号3时,求代数式(7+4根号3)X^2+(2+根号3)X+根号3的值? (2倍根号2-3)的2013次方×(2倍根号2+3)的2014次方 说明代数式2x的平方-4x-1总大于x的平方-2x-4. 当x=根号3,求代数式(x-1)(2X-根号3)-x(2x-1)的值 |根号3-2|+2013的零方-(-三分之一)的负一次方 +3tan30°带上过程! 代数式根号下(X^2+4)+根号下[(12-X)^2+9]的最小值. 若x的平方+2x+1+根号(y+1)=0,则代数式根号(x-y)的平方的值是? 简化√x^4+x^2y^2(x≤0)也就是根号x的四次方+x的二次方*y的二次方,且x小于等于0 代数式根号(x平方+4)+根号[(12-x)平方+9]的最小值为多少?这个题目是刚开学初三的老师布置的~ 若y=√x-3-√6-3x+√(-2)^2,求代数式x-2分之y+三次根号(2x+y)的值. 根号a的三次方等于多少?根号2y分之x三次方等于多少?(y<0) 代数式根号下【(x-1)平方+1】+根号下【(x-2)平方+9】的最小值 当x=1+根号3时,求代数式(x^2-1)(x+1)/x^2-x÷(1 +x^2+1/2x)+x的值 已知根号(2x-y)的平方=1,立方根(x-2y)的三次方= 1根据算数平方根的意义,由根号(2x-y)2=1,得(2x-y)2=1,得2x-y=1 ①根据立方根的定义,立方根(x-2y)³= -1,得x-2y= 1 ② 由①+②,得3x+3y=2,解得x-y=2/3以 给出代数式根号下[(X+1)的平方+1]+根号下[(x-3)的平方+4]的几何意义,并求它的最小值 已知根号X加根号X分之一=3,求代数式X分之X平方+1 已知根号(2x-y)的平方=1,立方根(x-2y)的三次方= 1 求x-y的值根据算数平方根的意义,由根号(2x-y)2=1,得(2x-y)2=1,得2x-y=1 ①根据立方根的定义,立方根(x-2y)³= -1,得x-2y= 1 ② 由①+②,得3x+ 代数式根号x+根号(x-1)+根号(x-2)的最小值是 若代数式x-1分之根号x有意义,则实数x的取值范围是如题 代数式根号x2+4+根号(12-x)2+9的最小值清楚一点 求证:代数式根号X+根号X—1+根号X—2 的最小值为根号2+1? 若代数式3次根号下x分之1在实数范围内有意义,则x的取值范围为—— 当X取正实数时,求代数式(根号下X^+4)+(根号下(X-12)^+9)的最小值 若x,y都是实数,且满足y>根号(1/2-x)+根号(x-1/2)+1,化简代数式1-x分之根号(x-1)的平方-(y-1)分之根号y平方-2+1. 若代数式根号x-3有意义,则实数x的取值范围是如题. 设函数f(x)=a的(x-1/2)次方,且f(lga)=根号10,求a的值 求代数式(根号下X^2+1)+(根号下(4-X)^2+4)的最小值 若实数X,Y满足Y=根号下2X-1+(根号下1-2X)加三分之一求代数式X平方-2XY+Y平方 (1+根号2)的2012次方乘(1-根号2)的2013次方 代数式√(x^2+4)+√(x^2-24x+153)的最小值 √=根号RT听老师说要数形结合,具体怎么做忘记了 另外百度知道也有人提这个问题 但是答案是错的,我记得答案是个整数的 所以没必要复制了 已知实数x、y满足|2x-y+1|+3根号3x-2y+4=0,求代数式[(x-y)/(x-2y)]/(x的平方-2y)/[(x的平方-y的平方)/x的已知实数x、y满足|2x-y+1|+3根号3x-2y+4=0,求代数式[(x-y)/(x-2y)]/(x的平方-2y)/[(x的平方-y的平方)/(x的 (根号3-根号2)的2012次方*(根号3+根号2)的2013次方 代数式根号2x-1分之x有意义的x取值范围是 若实数x,y满足y=根号2x-1+根号1-2x+1/3,求代数式x^2-2xy+y^2的值回答的能否详细些 (2+根号3)2013次方与(2-根号3)2012次方乘积的结果是 使代数式根号2x-1分之1有意义.则x的取值范围? 已知实数x满足根号x^2-2x-8+|x^2-5x+4|=0,求代数式根号x/1-x*根号x^2-1的值 根号2-根号3的2012次方乘根号2加根号3的2013次方 使代数式根号2x-1/(3-x)有意义的x的取值范围是 二次根式:当x=根号5-1时,求代数式x^2+5x-6的值.当x=根号5-1时,求代数式x^2+5x-6的值. 若y=根号x-1+根号1-x,则x的2013次方+y的2012次方=? 代数式2x²-4x+6有最小值当x取何值,2x²-4x+6最小值是多少顺片教我一下怎么求 已知x=1/(2-根号3).求代数式根号(x的平方-8x+16)/(x的平方-5x+4)的值 若根号x+1+(y-2013)的根号=0则x的y次方=? 试说明代数式-2x平方+4x-18有最小值,并求出这个最大值,此时x为多少? 已知2倍根号2x-根号6=根号2x+2倍根号2,求代数式(7-4倍根号3)x05+(2-根号3)x+根3的值 若根号x+1+(y-2013)的根号=0则x的y次方=多少 当X取何值时,代数式2X平方减4X加6有最小值.为什么, 问一道题;已知x=2008-5称根号3求代数式x的平方-1/x方-2x=1÷【1=x=1/x-3】的值 (根号3-2)的2013次方·(根号3+2)的2014次方(根号3-2)的2013次方·(根号3+2)的2014次方 当X取何值时,代数式X的平方+2X+3取最小值,并求出最小值 已知X=根号2,则代数式x/(x-1)的值为多少
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn