微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题用VB自动播放VCD
栏目软件世界
发布2001年38期
  当我们在用软件或影碟机播放VCD时,只要把VCD碟片放入驱动器内,系统就会自动播放,真是方便至极。
  其实在VB中我们也可以实现同样的功能,其思路和过程为,VCD的影像文件都在光盘的MPEGAV目录下,文件名一般有两种:avseq01.dat或music01.dat。我们要做的工作就是一旦光驱关闭,便开始检测这两个文件的存在与否,如果存在就将其打开,从而实现了自动播放功能,真的很简单。
  说干就干,新建一工程,在窗体(Form1)中加入一个Windows Media Player控件(也可用其他多媒体控件)和一个定时器控件,在Windows Media Player控件属性对话框中将AutoStart设置为True。然后启动菜单编辑器,创建“控制”菜单,并建立“弹出光驱”、“关闭光驱”和“退出”三个子菜单,如图所示(

)。
  以下程序在“Windows 98SE+VB 6.0”下调试通过,其源代码如下:
  在声明中添加:
  Option Explicit
  Private 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
  Dim result As Integer
  Dim ReturnString As String * 128
  Private Sub Form_Load()
  Form1.Caption = "示例"
  Timer1.Enabled = True
  Timer1.Interval = 1000
  End Sub
  Private Sub MnuControlClose_Click() '关闭光驱
  On Error Resume Next
  result = mciSendString("set cdaudio door closed", ReturnString, 127, 0)
  Timer1.Interval = 1000
  Timer1.Enabled = True
  End Sub
  Private Sub MnuControlOpen_Click() '弹出光驱
  On Error Resume Next
  MediaPlayer1.Stop
  MediaPlayer1.FileName = ""
  Form1.Caption = "示例"
  result = mciSendString("set cdaudio door open", ReturnString, 127, 0)
  End Sub
  Private Sub MnuControlQuit_Click()
  Unload Form1
  End Sub
  Private Sub Timer1_Timer()
  Dim fs, d, dc, sFile1, sFile2
  Set fs = CreateObject("Scripting.FileSystemObject")
  Set dc = fs.Drives
  For Each d In dc '查找所有驱动器
  If d.DriveType = 4 Then '如果为光驱
  sFile1 = d.driveletter + ":\mpegav\avseq01.dat"
  sFile2 = d.driveletter + ":\mpegav\music01.dat"
  If d.Isready And fs.FileExists(sFile1) Then '判断光驱是否准备好,文件是否存在
  Timer1.Enabled = False
  Form1.Caption = "示例 - " + sFile1
  MediaPlayer1.FileName = sFile1
  MediaPlayer1.Play
  End If
  If d.Isready And fs.FileExists(sFile2) Then
  Timer1.Enabled = False
  Form1.Caption = "示例 - " + sFile2
  MediaPlayer1.FileName = sFile2
  MediaPlayer1.Play
  End If
  End If
  Next
  End Sub
  赶快按下F5键运行一下,只要用菜单控制光驱的弹出与关闭,就能实现自动播放的功能了。需要说明的是,由于系统和控件的限制,该示例尚不能播放一些DVCD片。对控件进一步开发,将其变成真正的超级播放器,那可就是你的工作了。