二級(jí)考試VB輔導(dǎo):VisualBasic影音控制

字號(hào):

播放背景音樂(lè)
    聲明:
    Declare Function MCISendString& Lib ″MMSYSTEM″ (ByVal LPSTRCOMMAND$, ByVal LPSTRRETURNSTR As Any, ByVal WRETURNLEN%, ByVal HCALLBACK%)
    開(kāi)始播放:
    R% = MCISendString&(″OPEN EXAMPLE.MID TYPE SEQUENCER ALIAS NN″, 0&, 0, 0)
    R% = MCISendString&(″PLAY NN FROM 0″, 0&, 0, 0)
    R% = MCISendString&(″CLOSE ANIMATION″, 0&, 0, 0)
    停止:
    R% = MCISendString&(″OPEN EXAMPLE.MID TYPE SEQUENCER ALIAS NN″, 0&, 0, 0)
    R% = MCISendString&(″S NN″, 0&, 0, 0)
    R% = MCISendString&(″CLOSE ANIMATION″, 0&, 0, 0)
    其中EXAMPLE.MID 為播放的文件,NN為自定義名稱標(biāo)志。
    使XMPlayer自動(dòng)播放VCD
    XingMPEG Player是軟解壓播放VCD的優(yōu)秀軟件,但調(diào)入XM—player、進(jìn)入播放狀態(tài)、隱藏面板等一系列操作,需要多次點(diǎn)擊鼠標(biāo),較為麻煩。下面用VB程序首先檢查光驅(qū)是否準(zhǔn)備好或光驅(qū)中是否為 VCD光碟,然后利用VB模擬XingMPEG的鍵盤(pán)動(dòng)作,通過(guò)短短的幾行程序,實(shí)現(xiàn) VCD光盤(pán)的自動(dòng)播放。
    1.進(jìn)入VB環(huán)境,設(shè)置窗體Form1的Visible屬性為 False,然后在窗體上建立一個(gè)驅(qū)動(dòng)器列表框Drivel,亦設(shè)其Visible屬性為False,以使窗體和列表框在程序調(diào)入時(shí)不被顯示出來(lái)。其它屬性均取默認(rèn)值。
    2.雙擊窗體,編寫(xiě)過(guò)程代碼
    Private Sub Form—Load()
    On Error GoTo finderr ′檢查光驅(qū)是否準(zhǔn)備好或光驅(qū)中是否為VCD光碟
    startline:
    drvnmb=Drive1ListCount
    cdname$=Drive1List(drvnmb-1)
    files$=Dir$(cdname$ & ″mpegav*.dat″)
    If files$=″″Then GoTo finderr
    act=Shell(″C:Program FilesXmplayerXMPLAYER.EXE″,1)
    ′假定Xmplayer位于該目錄,打開(kāi)并使之獲得焦點(diǎn)
    SendKeys ″%(fv)″,True ′模擬Ctrl+fv鍵盤(pán)動(dòng)作,開(kāi)始播放VCD
    PauseTime=2 ′一些VCD光碟因制作不規(guī)范,播放前會(huì)提示有一些錯(cuò)誤,為對(duì)這些錯(cuò)誤作出處理,所以暫停若干秒,此暫停是在后臺(tái)進(jìn)行,不影響正常 VCD連續(xù)播放
    start=Timer
    Do While Timer    Loop
    SendKeys″{enter},^s,^p,^{f4},%{esc},^4″,True ′模擬其它鍵盤(pán)動(dòng)作,滿屏播放,隱藏面板等
    End
    finderr:
    msg$=″光驅(qū)未準(zhǔn)備好,或光驅(qū)中非VCD光盤(pán),將光驅(qū)準(zhǔn)備好,″
    msg$=msg$ & ″或換一張光盤(pán),然后回車(chē)重試,或按取消退出″
    er=MsgBox(msg$,53,″出錯(cuò)提示″)
    If er=4 Then Resume startline Else En ′由用戶選擇重試或退出
    End Sub
    3.將上述程序編譯成EXE文件,然后將其快捷方式拖至桌面,雙擊該圖標(biāo),考試.大提示即可裝入Xing MPEG Player并自動(dòng)開(kāi)始滿屏播放VCD,同時(shí)置PLAYER面板于Standard Bar狀態(tài),并將之隱藏。程序中^表示Ctrl,%表示Alt。之所以程序中要連續(xù)插入暫?!癪S”和播放“^P”兩個(gè)動(dòng)作,是因?yàn)?0版本的VCD在按Alt+FV后即開(kāi)始播放, 10版本在按Alt+FV后還要求按Ctrl+P,而Ctrl+P在播放狀態(tài)下又等價(jià)于Ctrl+S(即暫停);所以如果只有一個(gè)“^P”則使VCD10開(kāi)始播放而VCD20暫停,為了兼顧兩種版本的VCD,首先模擬Ctrl+S動(dòng)作實(shí)現(xiàn)暫停,然后再模擬 Ctrl+P開(kāi)始播放,從而使兩種版本的 VCD在執(zhí)行本程序后都能實(shí)現(xiàn)自動(dòng)播放。
    上述程序在Pwin 95、VB 5和XingMPEG Player 3.2環(huán)境中調(diào)試通過(guò)。