一、利用set bell to
VFP5.0的set bell to命令的使用格式不同于FoxPro2.X的格式。在VFP5.0中,它的格式為Set Bell To [cWAVFileName, nDuration]。其中cWAVFileName為一個.WAV文件;nDuration為持續(xù)時間(注意該項(xiàng)不可省略,否則會產(chǎn)生語法錯誤)。這樣當(dāng)在個人程序的初始模塊中用set bell to 定向到一.WAV文件后,便可在后面的模塊中用?chr(7)來播放該.WAV文件。 示例1: set bell on &&使bell有效 set bell to′ .WAV文件′,0 &&使bell定向到一個.WAV 文件。注意有單引號 chr(7) ?。ΓΣシ旁?WAV文件 二、利用OLE容器控件 創(chuàng)建一表單,單擊表單控件工具欄中的“OLE容器控件”按鈕,然后在表單上適當(dāng)位置點(diǎn)擊或拖動。在出現(xiàn)的“Insert Object”窗口中選“Creat New”或“Creat From File”,用“Browse”按鈕選取自己的.WAV文件,確定即可。 在當(dāng)前表單中會出現(xiàn)一“喇叭”圖標(biāo),設(shè)置該圖標(biāo)的屬性“ AutoActivate”為1,可使每當(dāng)表單運(yùn)行時自動播放該.WAV文件,實(shí)現(xiàn)背景音樂;設(shè)置Height、Width均為0時,可隱藏“喇叭”圖標(biāo)。 三、利用VFP庫Foxtools.fll 用=Regfn()和=Callfn()可訪問Foxtools.fll中的音頻模塊,進(jìn)行播放聲音文件。 示例2: 創(chuàng)建一表單,在其Activate事件中輸入下列代碼: public ss &&定義一全局變量ss set library to foxtools.fll &&打開庫Foxtools.fll ss=Regfn(″SndPlaySound″,″CI″,″I″,″mmsystem″) &&取得音頻信息 =Callfn(ss,″一.wav文件″,n) &&n=0(1,2,3也可)時只播放一遍,n=9時循環(huán)播放 在其Destroy事件中輸入下列代碼: =Callfn(ss,″″,10) &&停止播放 set library to &&從內(nèi)存中釋放庫foxtools.fll 四、利用Windows的動態(tài)鏈接庫 在VFP5.0的安裝目錄samples\classes下,有一類庫samples\classes。其中提供有兩種控件:視頻和音頻,音頻可以控制播放.WAV和.MID文件,利用它可輕松地實(shí)現(xiàn)背景音樂。下面給出它的實(shí)例。 示例3: 創(chuàng)建一表單,在表單控件工具欄中選擇類按鈕,添加VFP5.0中的samples\classes\samples.vbx類庫。此時表單控件工具欄中會出現(xiàn)SoundPlayer和VideoFrame兩個多媒體控件。選擇SoundPlayer,在表單上單擊后,設(shè)置它的屬性如下: AutoOpen=.t. AutoPlay=.t. AutoRepeat=.t. Class=SoundPlayer Soundfile=指定一.WAV或.MID文件 &&注意沒有引號 Visible=.f. &&不可見 以上幾種方式各有優(yōu)缺點(diǎn),應(yīng)用時要注重滿足自己的編程需要。若你有更好的方法,歡迎來信共同探討 我利用ole容器播放MID文件,因?yàn)镸ID文件普遍最小。 但是我不知道可否設(shè)置循環(huán)播放? 因?yàn)槲也恢澜鉀Q方案,所以,我就加了一個定時器,設(shè)置調(diào)用定時器的時間間隔等于或略大于MID播放時間長度。 ********************************* |
|