登陆注册
13955600000030

第30章 多媒体程序设计(3)

①在VB程序设计窗口的【工程】菜单栏中,单击选择【部件】,打开【部件】对话窗口;

②在部件对话窗口中选择“MicrosoftMultimediaControl6.0”选项;

③按确定按钮,工具箱中将增加一个MCI控件。

采取以上方法后可看到在工具箱的尾端增加了一个图标,即MCI控件的图标。可以像绘制其他控件一样,在窗体中绘制MCI控件,它类似于一个录音机的按钮,不过此时出现的按钮呈现浅灰色,表示还没有激活这个对象。MCI控件上的按钮从左到右依次为:上一首(Prev),下一首(Next),播放(Play),暂停(Pause),倒带(Back),步进(Step),停止(Stop),录音(Record)以及弹出(Eject)。

【例7.6】

用MCI控件播放CD音乐。

要用MCI控件播放CD音乐,首先要在窗体中加入该控件,然后在Form_Load事件中加入下面的程序,启动媒体控制对象。源程序如下:

PrivateSubForm_LoadMMControl1.DeviceType=“cdaudio”’告诉MCI要使用的多媒体设备类别

MMControl1.Command=“open”’要下达“Open”指令后,媒体控制对象才能使用

1是默认的媒体控制对象名,可以在属性窗口中进行修改。这个程序非常简单,此时只要按下黑色的\[Play\]按钮即可播放CD唱片。

在这个例子中,人们会发现媒体控制对象上有几个按钮呈灰色,无法使用。这是因为其AutoEnable属性的缺省值为True,此时媒体控制对象会随时随地监测所指定的多媒体设备的状态,并自动决定按钮的状态。对于CD音响设备,\[Step\]、\[Back\]和\[Record\]功能无效,故按钮为灰色,无法使用。而\[Pause\]和\[Stop\]按钮在\[Play\]按钮按下后变黑,使用户可以暂停或停止音乐的播放,同时\[Play\]按钮变灰,处于无效状态。

Autoenable属性虽然可以自动监测并设定按钮的状态,但它不会自行将无效的按钮从媒体控制对象上移走,要做到这一点,可将按钮相应的Visible属性设置为False。例如:

此三条语句可将\[Step\]、\[Next\]和\[Record\]按钮从媒体控制对象上移走。此外,如果不想系统自动监测,可以将AutoEnable属性设置为False,设定按钮相应的Enable属性,迫使其处于有效或无效状态。例如下面两条语句:

这两句可以使\[Play\]按钮有效,使\[Record\]按钮无效。

【例7.7】

在MCI控件的ButtonClick事件中,若将Cancel参数设为True时,系统不执行按钮代表的MCI指令,而是直接执行事件过程中的语句。例76中的程序改为如下:

此时执行程序,单击【Play】按钮并不能播放MIDI音乐canyon.mid,而是在消息框中显示“Playbuttoncancel!,不能播放”。因为在PlayClick事件中,将Cancel属性设置为True,所以媒体控制对象就没有执行按钮对应的play命令,仅执行事件过程中的语句。

【例7.8】

设计应用程序界面。

首先创建一个新的工程文件,在窗体中加入一个MCI控件,对这个程序来说,MCI控件的“录音”和“弹出”按钮是不需要的,可以在多媒体控件【属性页】对话框的【控件】选项卡中将这两个按钮的可视属性的对勾去掉,此时该控件中这两个按钮就会消失。接下来,在窗体上添加一个PictureBox控件作为播放视频文件的地方,再添加一个CommonDialog的控件,以显示“打开文件”对话框,方法是,单击【工程】菜单中的【部件】命令,弹出【部件】窗口,选择MicrosoftCommonDialogControl6.0控件。

添加CommonDialog控件到窗体后,在该控件上单击右键,选择快捷菜单的【属性】项,系统出现【属性页】对话框。接着修改各项参数,如图72所示。

图72CommonDialog控件属性对话框同时,还需要一个定时器控件和两个按钮控制文件,分别是“打开文件”、“关闭文件”,并将定时器的Interval属性设置为50ms。最后再添加一个滑块控件,方法是单击【工程】菜单中的【部件】命令,弹出【部件】窗口,选择“MicrosoftWindowsCommonControls6.0”控件。这时工具箱中会多出几个控件来,其中有一个控件名为“Slider”,就是滑块控件,如图73所示。

最后一步,将窗体上所有控件都调整好位置,调整好后的设计窗体如图74所示。

编写代码如下:

OptionExplicit

PrivateSubCommand1_ClickMMControl1.DeviceType=“AVIvideo”’设定使用设备类型为AVIvideo。

CommonDialog1.ShowOpen’显示“打开文件”对话框

MMControl1.FileName=CommonDialog1.FileName’MCI控件打开的文件

Picture1.Visible=True

MMControl1.hWndDisplay=Picture1.hWnd’设定Picture1为演播舞台窗口

MMControl1.Command=“open”’将播放设备打开

MMControl1.From=0’指定播放位置

MMControl1.Command=“seek”’在打开的文件中,设置下一个操作位置

Slider1.Min=1’设定Slider控件的最小值为1

Slider1.Max=MMControl1.Length’设定Slider控件的最大值为媒体文件的长度

Slider1.SmallChange=MMControl1.Length/20’单击键盘上下键时变化长度

Slider1.LargeChange=Slider1.LargeChange=MMControl1.Length/10

单击PageDown或PageUp时的长度

PrivateSubCommand2_ClickMMControl1.Command=“close”’关闭播放设备

Picture1.Cls’清除Picture控件中的内容

PrivateSubTimer1_TimerSlider1.Value=MMControl1.Position’设定滑块的位置等于媒体文件的位置。

EndSub

7.5调用API函数开发多媒体程序

使用MCI控件开发Windows系统下的多媒体程序,具有简单、快捷、方便的特点,但在实际程序设计中,常会碰到一些利用MCI控件不好解决的问题。例如,VB语言不包含语音支持、I/O端口访问以及位图操作等。为适应不同层次程序设计人员的要求,VB提供了直接调用Windows的API函数的功能,通过调用API函数,可以实现对系统的各个层次的功能调用。

7.5.1VB的APl函数调用

同类推荐
  • 体感交互技术

    体感交互技术

    本书提出了体感计算的研究,探讨了基于体验性认知的个性化电子学习方式,并且分析了面向儿童的艺术创造体验,在体感虚拟化身的帮助下,用户可以通过身体运动,促进情感心智的全面发展,
  • 如何处理电脑故障

    如何处理电脑故障

    本书以问答的方式介绍了电脑会出现的各种故障,内容包括了音箱声音失真,如何处理?如何做好电脑的日常维护等等问题。
  • 纵横于天地之间——互联网络技术

    纵横于天地之间——互联网络技术

    本书告诉你:不管你是谁,只要生活在当前的时代,你一定知道电话,知道电脑,知道上网……知道许许多多关于电子、关于计算机、关于网络的话题,这就是网络时代。网络的话题可多了:它是怎么来的?什么是“蜘蛛网”?网络的过去和现在,上网的方法,如何使用网络,互联网的安全,网络有“陷阱”吗?网络有“瘾”吗?网络文化和未来又是怎样的?到书中去找答案吧!
  • EDA技术

    EDA技术

    根据课堂教学和实验操作的要求,以提高实际工程设计能力为目的,深入浅出地对EDA技术相关知识作了系统和完整的介绍,相关知识作了系统和完整的介绍。
  • 领导干部信息化基础

    领导干部信息化基础

    本书共分6章,分别介绍了计算机网络综述;信息化的三个主要领域,即电子政务(政府信息化)、企业信息化和电子商务;PowerPoint2000中文演示文稿等内容。
热门推荐
  • 大哥偶是男的

    大哥偶是男的

    无限好书尽在阅文。
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 重生在皇室战争

    重生在皇室战争

    宅男林跃在充电时打游戏,结果手机爆炸,穿越到了皇室战争的世界里。刚到就即将失去国王身份╭(°A°`)╮怎么办,在线等,急。
  • 多想再拥抱你一次

    多想再拥抱你一次

    你是否因为一个人爱过一座城,是否因为一个人的离开,而改变了原本的你。听起来或许很傻,如果可以,我宁愿从未遇到过你……
  • 傅少的追妻之路

    傅少的追妻之路

    男主傅少卿,女主苏晴,作为四大家族之一的男主小时候喜欢的小晴儿在一场大火中去世了,女主从小暗恋男主,但是因为场事故让女主斩断了对男主的念想,在线观看晴儿的少卿哥哥如何追妻火葬场吧……
  • 超神学院之光能无限

    超神学院之光能无限

    恶魔与天使同时降临了这个星球,沉翦开启超级基因后,开始了与雄兵连一起拯救世界。不是爽文,主角性格比较矛盾,内容可能过于真实,引起不适,不喜勿喷。光能无限讨论群:616395003
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 一品宠妃:娘子哪里跑

    一品宠妃:娘子哪里跑

    从出生在这个人生地不熟的世界的开始,就注定她会被他折磨死,他们总是被无形的牵引着。神仙把她变成了一只狐狸,好死不死的被他抱走了,哈?天下传闻砂之国六皇子是个病秧子,注定活不过二十,简直是放屁,他生龙活虎的很。她乔装男子,浪荡江湖,引无数女子尽折蛮腰,人称她“倾颜公子”,败在她长袍下的女子数不胜数,可当某天遇到个极品美人后,苏钰风中凌乱了。卧槽!这贱人居然使用“美人计”。“你是我的未婚妻,怎么可能那么容易就放你走?”什么?不准她去找宝马良人?你管那么宽干嘛?本姑娘就找了怎么滴?“哦呦!胆子肥了?走,咱们房里聊聊去,为夫好好的跟你讲讲道理”于是乎,房里尖叫连连。
  • 时空梦者
  • 天鹅微光

    天鹅微光

    我做了一个梦在梦里我是一个无所不能的魔鬼我有着一副天真无邪的童颜有着一个叫做希斯的双胞胎兄弟奇迹从天而降一个美如天神的男子径直走到我面前蜜色发帘下碧蓝色的眼睛深邃清澈他就像一个使者向我微微躬身露出一抹礼貌的微笑字节分明用匀速的语调缓缓对我说道“这里是梦的疆域欢迎来到您的梦境库珀先生我是梦境的掌控者墨菲斯”随后他就消失了在梦里我一直被希斯囚禁在一个房间我坚信他不会伤害我所以从未离开房间。。。我正想继续做这个美梦的时候好巧不巧梦就醒了