logo资料库

利用MCI函数实现播放视频.pdf

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
铷翊 凑数 在Authorware中,可 用Authorware自身提供的视频 影像播放图标来实现Video的播放 但是,这种方法太过 于死板,要实现完整的控制功能.如暂停、继续、向前陕 进、向后快退等,几乎是不可能的。实际上借助于MCI函 数就可以的实现。 MCI(Media Control Interface)是Windows多媒体环 境中非常重要的部分,它提供了各种各样的命令,来实现 对多媒体外部设备的控制和展现多媒体效果。MCI属于高 层函数的调用接口,可以把它作为一种命令解释器来理解. 它控制的多媒体设备包括:动画播放设备、CD Audio设 备、声音设备、激光视盘、录像机和视频叠加设备。 设汁者与MCI沟通的方法之—是使用MeiSendSlring ()或MeiExeoute 0函数,函数中的参数 类似于自然语 言的字符串来表示。例如要打开一个“.AVI”视频影像文 件,只要写出以下语句即可: mciexecute(”open test.avi st3'le popup alias avifile ) 这里“test avi”是要播放的文件名.“avifile 是为 方便而给视频文件起的一个别名 “ 1e popup”是安排窗 口打开的风格。 如果要播放“.AVI”文件只要采用以下语句即可: mciexecute("play avifile ) 显然,MCI函数使用起来是非常简单的,只要在 MciExecute 0函数中加入符合格式的控制字符串就行。 控制 .AⅥ 巍颡文件静常用警符串; 一 ~,qle 甜 显示第嘲酣定播: 碰 l蚰 舭 i鸯际Avl撼藓醇唷口 嘲 avi leII蚰 捌该文件鲰廓目 聪数 play州 M醯 捌 件熏瞎嘴束j i sce l。stan 醇到第 蜮 j 遁Ie暂停掬嵌j 咖p 盐僚蛾皤放 close avifile 黄闭文件 。 文,陈庆幸 f3f J 在Authorware中,引用MCI函数的方法是在计算图 标中写入MCI函数语句,那么在执 时就会完成对应的功 能。当然,你的机器中必须装有Video For Windows或其 它台适的video驱动程序。此外,在Authorware系统中, 还必须有“UCD 函数文件,它是外挂的多媒体支持函 数库,MciExecute()函数就在其中。“.UCD”文件通常 在Authorware安装时并不会自动装入,需要用户自己拷贝 到合适的目录中,该文件在 Authorwarey(:~的goodies目录 下的ucd子目录中。 下面是在Authorware中播 放视频影像的流程实例图,如 图1,它运行后表现的画面如图 2所示。 图1 图2 这里的layout图标的作用是安排好播放版面。第一个 计算图标initiate是做一些初始化工作.它的内容是: Mov~ame:掣罐蛹始.矾 meiexeeum(..6p随 leI血鞠 哪 譬磷弩 叠 j meiexo~m~(” 4 movie硒锎睛"6W'maowHmadle) 多媒体世界1 998.8 o 维普资讯 http://www.cqvip.com
mciexeanei㈣瓣酾簿霸鳞 毒嚣 瓤零蝣霉 其中MovieName语句定义视频文件的变量名,接下来 打开指定的文件,定义用来播放AV[的窗口的handle,定 义播放窗口的位置和视频图象的尺寸,表示在屏幕上028, 128)处,以305~235的尺寸播放)。 然后用一个交互式图标把所有控制按钮安排好,每个 控制按钮启动一个计算图标,每个计算图标包含一段调用 MCI函数的代码。这些计算图标的具体内容如下: (1)CLOSE按钮对应的计算图标: meiexeeute(”close movie ) VideoCIose: ⅡLUE (2)FF按钮对应的计算图标: mciexecute set movie speed 3000”) 它实现向前陕进的作用,正常播放速度是1000。 (3)RW按钮对应的计算图标: meiexe~ute(。set moVIe speed 3000”) meiexeeute("play movie rcvel e’ (4)SEEK按钮对应的计算图标: meiexecute(”seek movie to start”) 它实现将视频图象返回第一帧。 (5)PLAY按钮对应的计算图标: Test(VideoClose=TRUE,meiexeeute( open ^FfleLoe- ation^MovieName~”stylepopup aliasmovie” Test(VideoCIose=TRUE,meiexeeute(”window movie handle” WindowHandle)) Test(VideoClose-TRUE,meiexeeute("put movie des- tin on at 328 128 305 235 11 mciexecute(1.set movie speed 1000") mciexecute Cplay movie”) VideoClose:=FALSE 它实现视频图象的播放。注意,为保证播放正常进行, 通常在播放前要测试一下目前视频图象播放的状态。第一 行到第三行就是检查视频文件是否已经关闭,如果已经关 闭,即变量VideoClose的值是“TRUE”,那么就重新进行 初始化。然后直接进行播放,并立即将变量VideoClose的 值设置为“FALSE”。 (6)PAUSE按钮对应的计算图标: meiexecute("pause movie”) (7)RESUME按钮对应的计算图标: meiexeeute("resume movie ) 它实现将暂停的图象继续播放。 O (8)STOP按钮对应的计算图标: meiexecute( stop movie ) 在Authorware中使用这种方式实现视频图象的播放, 从控制上来说是极为方便的,而且也比较容易掌握。但是 要注意以下几点: (1)初始化计算图标中的语句与PLAY按钮连接的计 算图标中的对应语句应当一致。图3是这两个图标在Auth- off,ire下打开时的情况。其中语句是对应的,否则,显示 将会出问题。 图3 (2)PAUSE按钮和RESUME按钮是对应使用的。为 防止用户用PAUSE按钮暂停播放,而又用PLAY按钮继 续播放,可以在PAUSE按钮起作用后,及时设置一个状 态变量记录图象已被暂停,而在PLAY按钮对应的计算图 标中判断图象是否被暂停,如果被暂停,则采用meiexecute ("resume movie”)语句播放,如果没有被暂停(意味着没 有播放或被STOP),才使用mciexecute Cplay movie )来 播放。 (3)为防止用户按F PLAY按钮后,再去按PLAY按 钮(这样有时系统会出错),可以增加判断:如果正在播 放,则关闭文件,然后再打开文件重新进行播放。 (4)MCI函数要求一个AVI文件的播放,一定要在其 它AVI文件不活动时才可以。而用户往往忘了关闭正在播 放的文件,就去使用系统的其它功能,再回到视频播放时 就会出错。所以最好在退出视频播放时,及时把视频文件 关闭 所以在按钮EXIT中就最好执行完语句mciexecute ( close movie )后,再执行Quit 0。 这里给出的流程只是一个最简单的流程,用户采用时 还要根据自己的控制要求,增加适当的状态'劂试或控制语 句才能宴现一个符合自己需求的应用流程。团 多媒体世界1998 8 维普资讯 http://www.cqvip.com
分享到:
收藏