用VB实现队列播放MP3

Author: 刘克文 Date: 2000年 第37期

  队列播放MP3就是在文件列表框中一次选择多个MP3文件,让播放程序顺序地播放选择的MP3文件。这是一般的MP3播放器都有的功能,如何在VB程序设计中来实现队列播放MP3的方法呢?
  首先介绍一下程序中要用到的MediaPlayer控件。它不是VB的标准控件,而是Windows操作系统自带的一个多媒体控件。大家可以在VB开发环境中的单击“工程”→“部件”对话框中,添加MediaPlayer控件。如果要播放MP3,则至少要6.01以上版本的MediaPlayer控件(Windows98中自带的就是这个版本)。如果在部件对话框中找不到MicroSoft Mediaplayer Control,那可能是你没有安装附件所致,这需要在系统中安装相应的附件。
  正因为使用了Windows自带的控件,所以编出的程序的可移植性很好,更为重要的是,MediaPlayer控件可以播放包括AVI、MOV、WAV、MPG、MP3、M3U、QT等等在内的28种多媒体视频、音频格式的文件,可谓功能强大。
  这个程序正是利用了MediaPlayer控件可以播放MP3和M3U文件的特性来实现队列播放MP3的。我再说一下M3U文件,这种文件实际上是ASCII码文件,如果你用记事本打开它,就可以发现文件的内容实际上就是多媒体文件的地址列表,能够播放它的程序会顺序播放文件里列出的多媒体文件。
  下面就是程序的实现步骤:
  首先建立一个新窗体Form1,添加DriveListBox,DirListBox,FileListBox各一个,Caption属性分别设为Drive1,Dir1和File1,再添加CommandButton以及MediaPlayer控件各一个。然后编写代码如下:
  Option Explicit
  Private Sub Command1_Click()
  Dim num As Integer
  Dim filename As String
  Dim filenum As Integer
  Dim i As Integer
  num=File1.ListCount
  filenum=FreeFile
  Open ″C:\filelist.m3u″ For Output As #filenum
  For i=0 To num-1
   If File1.Selected(i) Then
    filename=File1.Path+″\″+File1.List(i)
   End If
   Print #filenum,filename
  Next
  Close #filenum
  MediaPlayer1.filename=″C:\filelist.m3u″
  End Sub
  Private Sub Dir1_Change()
  File1.Path=Dir1.Path
  End Sub
  Private Sub Drive1_Change()
  Dir1.Path=Drive1.Drive
  End Sub
  程序在Win98系统中调试通过。使用的时候只要选好MP3歌曲所在的文件夹,在文件框中用Shift或Ctrl键选择多个文件即可实现队列播放。
  怎么样,快去编写自己的WinAmp吧。