1、在PB中播放动画和语音 (深圳:独孤求败 2003-05-27) PowerBuilder是一套强大的数据库应用系统开发工具。如果能在应用系统的开头播放一小段动画和语音,无疑会使系统赏心悦目、更具风采。 3DS是基于PC的三维动画制作软件,用户可以直接使用其丰富的材质库及模型文件,能够在较短的时间内制作出优秀的动画效果。采用3DS制作动画封面并渲染成START.FLC文件。下面主要介绍在PowerBuilder中,通过调用动态链接库(DLL),来播放动画和语音。 1.MCI设备驱动程序的安装 Windows的媒体播放器中缺省设置只能够播放扩展名为avi的动画文件,要
2、播放flc文件,需要在Windows中装入相应的MCI(媒体控制接口)驱动程序。可在Windows中装入一个小巧的动画播放软件Aaplayw,在安装提示中,注意选择“安装MCI驱动程序”一项,则该驱动程序便自动安装。我们同样也可以采用手动安装的方法,首先拷贝播放动画所需的两个动态库和一个驱动程序:aaplay.dll、aavga.dll、mciaap.drv到windowsιsystem目录下, 然后按下面所示修改三个参数配置文件。 win.ini文件应有以下内容: [mciextensions] flcΚanimation1 fliΚanimation1 aa
3、sΚanimation1 [IAAnimationEditor] PlayDisplayZoomedΚ1 CleaDisplayΚ1 HideScriptΚ1 PlayBarInScriptΚ1 PlayLoopΚ0 PlayDisplayErrorsΚ1 ClearImageAtEndΚ0 ClearDisplayAtEndΚ0 DisplayVisibleΚ1 ImagevisibleΚ1 ToolBoxVisibleΚ1 MouseVisibleΚ1 DisplayZoomedΚ1 Aut
4、oHideScriptΚ1 IconCommentsΚ1 IconDataΚ1 [AAPLAYAnimation] DualScreenΚ0 FullScreenΚAAVGA.DLL FullInstalledΚ1 system.ini文件应有以下内容: [mci] Animation1Κmciaap.drv control.ini文件应有以下内容: [drivers.desc] mciaap.drvΚ[MCI]AutodeskAnimation1.10 安装完毕后再打开媒体播放器,用鼠标选择“设备”菜单项,这时会发
5、现比原来多了一项设备名(AutodeskAnimatorAnimation),选择此设备,在打开文件菜单中选择文件时的扩展名列表框中有“ .flc文件”类型。先试着播放一下START.FLC,如果不能播放该动画文件,则可能是设备驱动程序没有安装好,需按上述步骤进行检查。 2.MCI指令 MCI指令是Windows多媒体环境中非常重要的部分,Windows通过媒体控制接口MCI来主宰MPC多媒体外部设备。MCI指令的语法格式为: commanddevice—namearguments 其中:command:指令名。 device—name:多媒体设备类型,也可能
6、是文件名或者别名。 arguments:指令操作参数。 3.支持多媒体的API函数 Windows的动态链接程序库mmsystem.dll(在WIN32中使用WINMM.DLL),提供了大概一百多个具有多媒体处理能力的API函数,其中包括与MCI指令沟通的API函数。下面的程序设计中我们主要使用了两个函数:mciSendString()和SndPlaySound()。 4.PowerBuilder调用动态链接库来播放动画和语音 (1)创建窗口win-face,定义外部函数,具体方法如下:选取菜单栏“Declare”的菜单项“GlobalExternalFu
7、nctions…”,在定义全局函数窗口中书写下列语句: FUNCTIONlongmcisendstring(stringcomm,stringretu,integerlength,integerhwnd)LIBRARY″c:ιwindowsιsystemιmmsystem.dll″ FUNCTIONbooleansndPlaySound(stringSoundName,uintFlags)LIBRARY ″c:ιwindowsιsystemιmmsystem.dll″ FUNCTIONuintwaveOutGetNumDevs()LIBRARY″c:ιwindowsιsy
8、stemιmmsystem.dll″ 注意:如果在Windows95上(win32version),则LIBRARY后应“c:ιwindowsιsystemιwinmm.dll” (2)在窗口win-face的Open事件中输入程序代码: timer(0.01)/ 设定启动时间 / (3)在窗口win-face的Timer事件中输入程序代码 : timer(0)/ 关闭Timer事件 / longret integernu stringcomm1,comm2,comm3,buff comm1Κ″openc:ι3dsιimagesιsta
9、rt.flctypeAnimation1aliaswelcomestylepopup″ comm2Κ″playwelcomefrom1to40speed16wait″ comm3Κ″closewelcome″ setnull(buff) setnull(nu) retΚmcisendstring(comm1,buff,0,nu) / 打开动画播放设备 / retΚmcisendstring(comm2,buff,0,nu) / 播放封面动画 / retΚmcisendstring(comm3,buff,0,nu) / 关闭动画播放设备 /
10、 open(w-main)/ 打开应用主窗口 / close(this)/ 关闭win-face窗口 / (4)在应用主窗口w—main的Open事件中输入程序代码: booleana uintlui—numdevs stringas—filename as—filenameΚ″c:ιwindowsιstart.wav″ uintai—option lui—numdevsΚWaveOutGetNumDevs() iflui—numdevsΛ0then aΚsndPlaySound(as—filename,ai—option) / 播放话音文件 / retrun1 else return-1 endif (5)在退出应用时播放EXIT.WAV文件所用语句与播放START.WAV文件所用语句类似(上述程序在PowerBuilder5.0中调试通过)。 5.在PowerBuilder中播放.FLC动画文件的其它几种方法 (1)通过类用户对象创建动画封面。 (2)把.FLC文件形成.EXE文件后,用函数RUN(″c:ι3dsιimagesιstart.exe″)来运行。






