VisualBasic影音控制
2006-02-27 11:43:37 来源:WEB开发网核心提示:播放背景音乐声明:DeclareFunctionMCISendString&Lib″MMSYSTEM″(ByValLPSTRCOMMAND$,ByValLPSTRRETURNSTRAsAny,ByValWRETURNLEN%,ByValHCALLBACK%)开始播放:R%=MCISendString&(″OPENEXA
播放背景音乐
声明:
DeclareFunctionMCISendString&Lib″MMSYSTEM″(ByValLPSTRCOMMAND$,ByValLPSTRRETURNSTRAsAny,ByValWRETURNLEN%,ByValHCALLBACK%)
开始播放:
R%=MCISendString&(″OPENEXAMPLE.MIDTYPESEQUENCERALIASNN″,0&,0,0)
R%=MCISendString&(″PLAYNNFROM0″,0&,0,0)
R%=MCISendString&(″CLOSEANIMATION″,0&,0,0)
停止:
R%=MCISendString&(″OPENEXAMPLE.MIDTYPESEQUENCERALIASNN″,0&,0,0)
R%=MCISendString&(″STOPNN″,0&,0,0)
R%=MCISendString&(″CLOSEANIMATION″,0&,0,0)
其中EXAMPLE.MID为播放的文件,NN为自定义名称标志。
使XMPlayer自动播放VCD
XingMPEGPlayer是软解压播放VCD的优秀软件,但调入XM—player、进入播放状态、隐藏面板等一系列操作,需要多次点击鼠标,较为麻烦。下面用VB程序首先检查光驱是否准备好或光驱中是否为VCD光碟,然后利用VB模拟XingMPEG的键盘动作,通过短短的几行程序,实现VCD光盘的自动播放。
1.进入VB环境,设置窗体Form1的Visible属性为False,然后在窗体上建立一个驱动器列表框Drivel,亦设其Visible属性为False,以使窗体和列表框在程序调入时不被显示出来。其它属性均取默认值。
2.双击窗体,编写过程代码
PRivateSubForm—Load()
OnErrorGoTofinderr′检查光驱是否准备好或光驱中是否为VCD光碟
startline:
drvnmb=Drive1ListCount
cdname$=Drive1List(drvnmb-1)
files$=Dir$(cdname$&″\mpegav\*.dat″)
Iffiles$=″″ThenGoTofinderr
act=Shell(″C:\ProgramFiles\Xmplayer\XMPLAYER.EXE″,1)
′假定Xmplayer位于该目录,打开并使之获得焦点
SendKeys″%(fv)″,True′模拟Ctrl+fv键盘动作,开始播放VCD
PauseTime=2′一些VCD光碟因制作不规范,播放前会提示有一些错误,为对这些错误作出处理,所以暂停若干秒,此暂停是在后台进行,不影响正常VCD连续播放
start=Timer
DoWhileTimer<start+PauseTime
Loop
SendKeys″{enter},^s,^p,^{f4},%{esc},^4″,True′模拟其它键盘动作,满屏播放,隐藏面板等
End
finderr:
msg$=″光驱未准备好,或光驱中非VCD光盘,将光驱准备好,″
msg$=msg$&″或换一张光盘,然后回车重试,或按取消退出″
er=MsgBox(msg$,53,″出错提示″)
Ifer=4ThenResumestartlineElseEn′由用户选择重试或退出
EndSub
3.将上述程序编译成EXE文件,然后将其快捷方式拖至桌面,双击该图标,即可装入XingMPEGPlayer并自动开始满屏播放VCD,同时置PLAYER面板于StandardBar状态,并将之隐藏。程序中^表示Ctrl,%表示Alt。之所以程序中要连续插入暂停“^S”和播放“^P”两个动作,是因为20版本的VCD在按Alt+FV后即开始播放,10版本在按Alt+FV后还要求按Ctrl+P,而Ctrl+P在播放状态下又等价于Ctrl+S(即暂停);所以如果只有一个“^P”则使VCD10开始播放而VCD20暂停,为了兼顾两种版本的VCD,首先模拟Ctrl+S动作实现暂停,然后再模拟Ctrl+P开始播放,从而使两种版本的VCD在执行本程序后都能实现自动播放。
上述程序在Pwin95、VB5和XingMPEGPlayer3.2环境中调试通过。->
声明:
DeclareFunctionMCISendString&Lib″MMSYSTEM″(ByValLPSTRCOMMAND$,ByValLPSTRRETURNSTRAsAny,ByValWRETURNLEN%,ByValHCALLBACK%)
开始播放:
R%=MCISendString&(″OPENEXAMPLE.MIDTYPESEQUENCERALIASNN″,0&,0,0)
R%=MCISendString&(″PLAYNNFROM0″,0&,0,0)
R%=MCISendString&(″CLOSEANIMATION″,0&,0,0)
停止:
R%=MCISendString&(″OPENEXAMPLE.MIDTYPESEQUENCERALIASNN″,0&,0,0)
R%=MCISendString&(″STOPNN″,0&,0,0)
R%=MCISendString&(″CLOSEANIMATION″,0&,0,0)
其中EXAMPLE.MID为播放的文件,NN为自定义名称标志。
使XMPlayer自动播放VCD
XingMPEGPlayer是软解压播放VCD的优秀软件,但调入XM—player、进入播放状态、隐藏面板等一系列操作,需要多次点击鼠标,较为麻烦。下面用VB程序首先检查光驱是否准备好或光驱中是否为VCD光碟,然后利用VB模拟XingMPEG的键盘动作,通过短短的几行程序,实现VCD光盘的自动播放。
1.进入VB环境,设置窗体Form1的Visible属性为False,然后在窗体上建立一个驱动器列表框Drivel,亦设其Visible属性为False,以使窗体和列表框在程序调入时不被显示出来。其它属性均取默认值。
2.双击窗体,编写过程代码
PRivateSubForm—Load()
OnErrorGoTofinderr′检查光驱是否准备好或光驱中是否为VCD光碟
startline:
drvnmb=Drive1ListCount
cdname$=Drive1List(drvnmb-1)
files$=Dir$(cdname$&″\mpegav\*.dat″)
Iffiles$=″″ThenGoTofinderr
act=Shell(″C:\ProgramFiles\Xmplayer\XMPLAYER.EXE″,1)
′假定Xmplayer位于该目录,打开并使之获得焦点
SendKeys″%(fv)″,True′模拟Ctrl+fv键盘动作,开始播放VCD
PauseTime=2′一些VCD光碟因制作不规范,播放前会提示有一些错误,为对这些错误作出处理,所以暂停若干秒,此暂停是在后台进行,不影响正常VCD连续播放
start=Timer
DoWhileTimer<start+PauseTime
Loop
SendKeys″{enter},^s,^p,^{f4},%{esc},^4″,True′模拟其它键盘动作,满屏播放,隐藏面板等
End
finderr:
msg$=″光驱未准备好,或光驱中非VCD光盘,将光驱准备好,″
msg$=msg$&″或换一张光盘,然后回车重试,或按取消退出″
er=MsgBox(msg$,53,″出错提示″)
Ifer=4ThenResumestartlineElseEn′由用户选择重试或退出
EndSub
3.将上述程序编译成EXE文件,然后将其快捷方式拖至桌面,双击该图标,即可装入XingMPEGPlayer并自动开始满屏播放VCD,同时置PLAYER面板于StandardBar状态,并将之隐藏。程序中^表示Ctrl,%表示Alt。之所以程序中要连续插入暂停“^S”和播放“^P”两个动作,是因为20版本的VCD在按Alt+FV后即开始播放,10版本在按Alt+FV后还要求按Ctrl+P,而Ctrl+P在播放状态下又等价于Ctrl+S(即暂停);所以如果只有一个“^P”则使VCD10开始播放而VCD20暂停,为了兼顾两种版本的VCD,首先模拟Ctrl+S动作实现暂停,然后再模拟Ctrl+P开始播放,从而使两种版本的VCD在执行本程序后都能实现自动播放。
上述程序在Pwin95、VB5和XingMPEGPlayer3.2环境中调试通过。->
Tags:VisualBasic 影音 控制
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接