用Delphi编制MP3音乐点歌台

Author: 杨德军 Date: 1998年 第03期 12版

  Delphi 3.0是一个非常优秀的软件,利用它可很快地制作出一个简单的MP3音乐点歌台。
  原理:制作一个MP3播放程序(本文以Winplay3为例)的外壳,建立中文歌曲名与MP3文件的关联,从而实现中文歌名的“点歌”。
  步骤:
#1  一、新建一个文件
  创建一个新的工程(New Project)和空白窗体(Form1),将Form1的Caption属性改为“我的点歌台”,在Form1中加入两个Comobobox构件,一个用来显示歌曲所在的专辑,将其Name属性改为zj,一个用来显示中文歌曲名称,将其Name属性改为Gq,在各自的上方分别加入一个Label构件,将其Caption属性改为“专辑选择”和“歌曲选择”,再加入两个Bitbotton构件,将其Caption属性分别设定为“播放”和“退出”。
#1  二、观察装有MP3文件的光盘的目录特点
  一般的目录都很有规律,如以笔者的一张光盘为例,全盘共分12张专辑,其子目录分别为:c01、c02……c12,分别建立名为c01.txt、c02.txt……c12.txt的文本文件,按顺序输入相应专辑下的中文歌曲名称,注意一个歌曲名占一行,并将其放入当前目录。在Object inspector中,选择zj,双击其Lines属性,然后依次输入专辑的名称,注意一个专辑名称占据一行;选择Gq,双击其Lines属性,删除其默认内容。
#1  三、编写程序
  在unit1.pas的Use语句加入Fmxutils,在Var部分加入一行:
  var filename:string,path;{filename为MP3文件的文件名,path为其路径}
  然后在Form1窗体中,双击zj,加入以下程序:
  procedure TForm1.zjChange(Sender:TObject);
  begin
  case zj.itemindex of
  0..8,10..20:path:=′e:\c0′+inttostr(zj.itemindex+1);
  9:path:=′e:\c′+inttostr   (zj.itemindex+1);
  {e为光驱的盘符,据实际情况而定}
  end;
  filename:=inttostr(zj.itemindex)+ ′.txt′;
  gq.items.loadfromfile (filename);
  gq.text:=gq.Items.strings [0];
  end;
  {双击Caption属性为“播放”的按钮,加入以下内容}
  procedure TForm1.Button1Click(Sender:TObject);
  begin
  case gq.itemindex of
  0..8,10..20:filename:=path+′\′+′0′+inttostr(gq.itemindex+1)+′.mp3′;
  9:filename:=path+′\10.mp3′;
  else
  filename:=path+′\01.mp3′;
  end;
  executefile(‘winplay3.exe’,mpname,′c:\winplay3′,sw_hide);
  {winplay3.exe为mp3播放程序的文件名,c:\winplay为其路径,sw_hide表示为后台播放,需根据实际情况灵活确定。}
  end;
  {双击Caption属性为“关闭”的按钮,输入以下内容}
  procedure TForm1.Button1Click(Sender:TObject);
  begin
  form1.close;
  end;
#1  四、编译运行
  单击Run图标,程序被编译并运行。此时,单击“专辑选择”下拉框,即会出现各个专辑名称供你选择。同时,在“歌曲选择”中也会出现专辑中所有歌曲的中文名称,选择其一后,单击“播放”按钮,所点歌曲便被播放。这样,一个简单的“点歌台”就制作成功了。