用VB6实现播放列表的自动生成

2010-08-28 10:49:18来源:西部e网作者:

    简介:本文介绍了用VB6编写一个小程序。让程序根据每个文件夹下的mp3、wma的文件名称来自动生成播放列表。

  很多朋友都是按照专辑名称来分文件夹保存mp3文件,即同一张专辑的mp3存在一个的目录下。但是随着收藏的音乐专辑越来越多,我们很希望把每张专辑的mp3分别制成一个播放列表,方便欣赏音乐。可是,这种专门的软件很少,而且大多不是免费的。其实我们可以用VB6来轻松实现这一功能。

  现在流行的播放列表文件格式有.m3u,.pls,.asx等,这里只探讨这三种播放列表的自动生成办法。

  一、实现原理

  1、用记事本打开一个非空的m3u播放列表文件,形如下面的格式

  File0=第一个mp3文件的路径

  File1=第二个mp3文件的路径

  …………

  这样,可以用vb6的open、print等命令写入文件,做成播放器能够识别的.m3u格式的文件。同理,经过VB6的字符串处理后可以生成播放器能够识别的.pls和.asx文件。

  2、利用vb6的FSO对象,实现对子目录的遍历(本文只遍历一层子目录)

  3、利用字符串处理函数完成对非MP3、WMA文件的过滤

  二、窗体设计

  本程序需要使用一个Label、一个TextBox文本框、三个Command按钮,布局好的窗体见图1。点击Command1就可以生成.pls格式的列表,点击Command2可以生成asx格式的播放列表,而点击Command3会生成m3u格式的列表。


图1



  TextBox让用户输入mp3专辑目录的路径。

  注:以本程序为例mp3专辑目录的路径为D:\test\albumlist,在“albumlist”目录下,每张专辑占用一个目录,如“album1”目录下为music1.mp3,music2.mp3……在你的电脑上运行本程序时,需要按照类似的目录结构在text框中输入目录结构。

    三、代码编写

  为了调用fso,需要在“工具”-“引用”中选择“Microsoft Scripting Runtimes”一项。

  Dim fso1 As New FileSystemObject

  Private Sub Command1_Click()

  Set fso2 = fso1.GetFolder(Text1.Text) ‘根据text1中输入的路径获得目录

  For Each f1 In fso2.SubFolders ‘遍历母目录下所有子目录



   Open f1.Path + "\" + f1.Name + "_播放列表.asx" For Output As #1 ‘在子目录下创建列表文件

   Print #1, "" ‘按照ASX文件格式写入第一行

   Set fso3 = fso1.GetFolder(f1.Path)

   For Each f2 In fso3.Files ‘遍历每个子目录下的音乐文件

   tzm = LCase(Right(f2.Name, Len(f2.Name) - InStrRev(f2.Name, "."))) ‘获得每个文件拓展名

   If tzm = "mp3" Or tzm = "wma" Then ‘过滤掉非mp3、wma文件

   Print #1, "
   End If

   Next

   Print #1, "
" ‘ 写入列表结尾行

   Close #1 ‘ 关闭文件

   Next

  MsgBox ("指定文件夹下的 .asx 播放列表生成完毕")

  End Sub

  Private Sub Command2_Click()

  Set fso2 = fso1.GetFolder(Text1.Text) ‘根据text1中输入的路径获得目录

  For Each f1 In fso2.SubFolders ‘遍历母目录下所有子目录

   Open f1.Path + "\" + f1.Name + "_播放列表.pls" For Output As #1 ‘在子目录下创建.pls列表文件

Set fso3 = fso1.GetFolder(f1.Path)

   i = 0

   For Each f2 In fso3.Files ‘遍历每个子目录下的音乐文件

   tzm = LCase(Right(f2.Name, Len(f2.Name) - InStrRev(f2.Name, ".")))

   If tzm = "mp3" Or tzm = "wma" Then

   Print #1, "File" & i & "=" & f1.Path & "\" & f2.Name ‘将当前文件路径按照asx的列表格式写入到文件中

   End If

   i = i + 1 ‘计数器加一

   Next

   Close #1 ‘关闭文件

   Next

  MsgBox ("指定文件夹下的 .pls 播放列表生成完毕")

  End Sub

  生成.m3u播放列表文件的方法与生成,pls类似,这里不再给出,完整程序请参考源代码

  下载程序源代码

  编写好代码后按F5运行,输入MP3所在目录,点击按钮,即可自动生成对应格式的播放列表了。

  四、提升

  1、本文各张专辑的播放列表都保存在相应的目录下,如果想让所有列表文件保存在特定文件夹下如C盘,只需将Open f1.Path + "\" + f1.Name + "_播放列表.pls" For Output As #1

  一行更改为Open "c:" + "\" + f1.Name + "_播放列表.pls" For Output As #1

  2、本文程序只列举输入文件夹下一层子文件夹中的mp3文件并生成列表,大家可以想办法让他遍历所有层的子文件夹。

  本程序在WindowsXp(SP2),VB6(SP6)下调试通过.

关键词:VB6

赞助商链接: