用VB自动播放VCD

Author: Date: 2001年 38期

?牐牭蔽颐窃谟萌砑蛴暗シ臯CD时,只要把VCD碟片放入驱动器内,系统就会自动播放,真是方便至极。
  ?牐犉涫翟赩B中我们也可以实现同样的功能,其思路和过程为,VCD的影像文件都在光盘的MPEGAV目录下,文件名一般有两种:avseq01.dat或music01.dat。我们要做的工作就是一旦光驱关闭,便开始检测这两个文件的存在与否,如果存在就将其打开,从而实现了自动播放功能,真的很简单。
  ?牐犓蹈删透桑陆ㄒ还こ蹋诖疤澹‵orm1)中加入一个Windows Media Player控件(也可用其他多媒体控件)和一个定时器控件,在Windows Media Player控件属性对话框中将AutoStart设置为True。然后启动菜单编辑器,创建“控制”菜单,并建立“弹出光驱”、“关闭光驱”和“退出”三个子菜单,如图所示(^38020502a^)。
  ?牐犚韵鲁绦蛟凇癢indows 98SE+VB 6.0”下调试通过,其源代码如下:
  ?牐犜谏髦刑砑樱?
  ?牐燨ption Explicit
  ?牐燩rivate Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
  ?牐燚im result As Integer
  ?牐燚im ReturnString As String * 128
  ?牐燩rivate Sub Form_Load()
  ?牐燜orm1.Caption = "示例"
  ?牐燭imer1.Enabled = True
  ?牐燭imer1.Interval = 1000
  ?牐燛nd Sub
  ?牐燩rivate Sub MnuControlClose_Click() '关闭光驱
  ?牐燨n Error Resume Next
  ?牐爎esult = mciSendString("set cdaudio door closed", ReturnString, 127, 0)
  ?牐燭imer1.Interval = 1000
  ?牐燭imer1.Enabled = True
  ?牐燛nd Sub
  ?牐燩rivate Sub MnuControlOpen_Click() '弹出光驱
  ?牐燨n Error Resume Next
  ?牐燤ediaPlayer1.Stop
  ?牐燤ediaPlayer1.FileName = ""
  ?牐燜orm1.Caption = "示例"
  ?牐爎esult = mciSendString("set cdaudio door open", ReturnString, 127, 0)
  ?牐燛nd Sub
  ?牐燩rivate Sub MnuControlQuit_Click()
  ?牐燯nload Form1
  ?牐燛nd Sub
  ?牐燩rivate Sub Timer1_Timer()
  ?牐燚im fs, d, dc, sFile1, sFile2
  ?牐燬et fs = CreateObject("Scripting.FileSystemObject")
  ?牐燬et dc = fs.Drives
  ?牐燜or Each d In dc '查找所有驱动器
  ?牐營f d.DriveType = 4 Then '如果为光驱
  ?牐爏File1 = d.driveletter + ":\mpegav\avseq01.dat"
  ?牐爏File2 = d.driveletter + ":\mpegav\music01.dat"
  ?牐營f d.Isready And fs.FileExists(sFile1) Then '判断光驱是否准备好,文件是否存在
  ?牐燭imer1.Enabled = False
  ?牐燜orm1.Caption = "示例 - " + sFile1
  ?牐燤ediaPlayer1.FileName = sFile1
  ?牐燤ediaPlayer1.Play
  ?牐燛nd If
  ?牐營f d.Isready And fs.FileExists(sFile2) Then
  ?牐燭imer1.Enabled = False
  ?牐燜orm1.Caption = "示例 - " + sFile2
  ?牐燤ediaPlayer1.FileName = sFile2
  ?牐燤ediaPlayer1.Play
  ?牐燛nd If
  ?牐燛nd If
  ?牐燦ext
  ?牐燛nd Sub
  ?牐牳峡彀聪翭5键运行一下,只要用菜单控制光驱的弹出与关闭,就能实现自动播放的功能了。需要说明的是,由于系统和控件的限制,该示例尚不能播放一些DVCD片。对控件进一步开发,将其变成真正的超级播放器,那可就是你的工作了。