我用Opendialog打开多个MP3文件,我想一次让它播放多个文件,请问该怎么做?我的Opendialog的MUILTSELECT属性已经改了?

解决方案 »

  1.   

    应该是把所选的文件的文件名写到一个文件比如.INI文件,然后在一个文件播放结束后调用下一个文件,具体我也没搞过,耗时间!
      

  2.   

    我正在做播放器,我的方法是调用Listbox,time控件,然后与Opendialog挂钩,代码有点长,过几天发布的时候你注意一下!
      

  3.   

    在OpenDialog打开多个文件的时候,其中有一个属性是你所选种的文件的列表,从中可以循环播放列表的文件.
    另为有一种方法是,把选种的文件写如一个文本文件中,这样的好处就不用我多说了吧.
    我现在放假,身边没有源码,等到上班之后可以给你发一个。
      

  4.   

    TO: Essence_zhx(艺森)  谢了,我的mail:[email protected]
      

  5.   

    用列表很简单的,一个一个放就行了。
    procedure TListForm.Label_addClick(Sender: TObject);
    var
      ii:integer;
    begin
      ODialog_mul.Title :='打开媒体文件';
    //  ODialog_mul.InitialDir :='';
      ODialog_mul.FilterIndex :=6;
      if ODialog_mul.Execute then
        begin
          if Odialog_mul.Files.Count=0 then exit; 
          for ii:=0 to ODialog_mul.Files.Count-1 do
          begin
            listbox.Items.Add(ODialog_mul.Files.strings[ii]);
          end;
        end;
    end;
      

  6.   

    请参考下面的代码:unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, MPlayer;type
      TForm1 = class(TForm)
        MediaPlayer1: TMediaPlayer;
        OpenDialog1: TOpenDialog;
        Button1: TButton;
        Button2: TButton;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure MediaPlayer1Notify(Sender: TObject);
      private
        { Private declarations }
      public
         FileList : TStrings;
         CurFileID: Integer;
         Started  : Boolean;
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);
    begin
      FileList := TStringList.Create;
      CurFileID := -1;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var                                       //打开
      i : Integer;
    begin
      if OpenDialog1.Execute then
        for i := 0 to OpenDialog1.Files.Count-1 do
          FileList.Add(OpenDialog1.Files.Strings[i]);
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin                             //播放
      if FileList.Count<1 then exit;
      Started := True;
      CurFileID := 0;
      MediaPlayer1.FileName := FileList.Strings[CurFileID];
      MediaPlayer1.Open;
      MediaPlayer1.Play;
    end;procedure TForm1.MediaPlayer1Notify(Sender: TObject);
    begin
      if not Started then exit;
      if MediaPlayer1.Mode = mpStopped then
      begin
        CurFileID:=CurFileID+1;
        Button2.Click;
      end;
    end;end.
      

  7.   

    我是这样播放的:
    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
        TempItem : TListItem;
        mp3file :string;
    begin
        if ListView1.SelCount <=0 then exit;
        TempItem := Listview1.Selected;
        mp3file := TempItem.Subitems.strings[1] + TempItem.Subitems.strings[0];
        MediaPlayer1.FileName := mp3file;
        //MediaPlayer1.Frames:= 1;
        MediaPlayer1.Open;
        MediaPlayer1.Play;
    end;但是我不知道怎样让TempItem := Listview1.Selected;
    在listview1中实现指针自动移动到下一行!!!
      

  8.   

    将打开的文件添加到一个,listbox当中,在按顺序播放!
    在文件开始播放时先判断文件的长度,如果一首播放完,则播放下一首!
      

  9.   

    以上几位都有问题,谁有源程序啊给我一个,只有能行一百分全归他了[email protected]
      

  10.   

    知道m3u文件吗?
    标准播放列表文件。格式:
    每行一个文件的全路径。可以用tstringlist.loadfromfile加载进来,
    然后按顺序访问tstringlist.strings[i]就可以得到多个文件了!
    tstringlist.savetofile可以保存播放列表。
    ///////////
    var
    i:integer
    sl:tstringlist;
    begin
    if opendialog1.execute then
    begin
      sl:=tstringlist.create;
      for i:=0 to opendialog1.filenames.count-1 do
      begin
        sl.add(opendialog1.filenames.strings[i]);
      end;
      sl.savetofile('xxx.m3u');
      sl.free;
    end;
    end;
      

  11.   

    刚刚做好了,不知道现在楼主是不是来不及了
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, ExtCtrls, MPlayer;type
      TForm1 = class(TForm)
        Panel1: TPanel;
        ListBox1: TListBox;
        Button1: TButton;
        OpenDialog1: TOpenDialog;
        Button2: TButton;
        Button3: TButton;
        MediaPlayer1: TMediaPlayer;
        Label1: TLabel;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure ListBox1MeasureItem(Control: TWinControl; Index: Integer;
          var Height: Integer);
        procedure FormCreate(Sender: TObject);
        procedure ListBox1DblClick(Sender: TObject);
        procedure ListBox1Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
        procedure MediaPlayer1Notify(Sender: TObject);
      private
        { Private declarations }
        Repeatflag:boolean;
        FilePath:TStringList;
        CurrentPlay:Integer;
      public
      { Public declarations }
      end;var
      Form1: TForm1;
      fileext: string;
      const ModeStr: array[TMPModes] of string = ('Not ready', 'Stopped', 'Playing', 'Recording', 'Seeking', 'Paused', 'Open');
      
    implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
    begin
    if opendialog1.Execute=true  then
    begin
        listbox1.items.add(Extractfilename(opendialog1.filename));
        self.FilePath.Add(opendialog1.FileName);
    end;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
    mediaplayer1.Close;
    panel1.Repaint;
    end;
    procedure TForm1.ListBox1MeasureItem(Control: TWinControl; Index: Integer;
      var Height: Integer);
    begin
    panel1.Color := clwindow;
    fileext:=extractfileext(listbox1.Items[Listbox1.ItemIndex]);
    if fileext='.wav' then
            begin
                    panel1.Caption:='这是一个声音文件!';
                    mediaplayer1.Close;
                    mediaplayer1.FileName:=listbox1.Items.Text;
                    mediaplayer1.Open;
                    mediaplayer1.Play;
            end
    else
    if fileext='.mid' then
            begin
                    panel1.Caption := '这是一个mid音乐';
                    mediaplayer1.Close;
                    mediaplayer1.FileName:=listbox1.Items.Text;
                    mediaplayer1.Open;
                    mediaplayer1.Play;
            end
    else
    if fileext='.mp3' then
            begin
                    panel1.Caption := '这是一个mp3音乐';
                    mediaplayer1.Close;
                    mediaplayer1.FileName:=listbox1.Items.Text;
                    mediaplayer1.Open;
                    mediaplayer1.Play;
            end ;end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      listbox1.Clear;
      self.FilePath:=TSTringlist.Create;
      self.Repeatflag:=false;
    end;procedure TForm1.ListBox1DblClick(Sender: TObject);
    begin
      self.Repeatflag:=false;
      Mediaplayer1.Close;
      mediaplayer1.AutoOpen:=false;
      mediaplayer1.FileName:=self.FilePath.Strings[listbox1.ItemIndex];
      mediaplayer1.AutoOpen:=true;
      Mediaplayer1.Open;
      mediaplayer1.Play;
    end;procedure TForm1.ListBox1Click(Sender: TObject);
    begin
      label1.Caption:=self.FilePath.Strings[listbox1.ItemIndex];
    end;procedure TForm1.Button3Click(Sender: TObject);
    begin
      self.CurrentPlay:=0;
      self.Repeatflag:=true;
      Mediaplayer1.Close;
      mediaplayer1.AutoOpen:=false;
      mediaplayer1.FileName:=self.FilePath.Strings[0];
      mediaplayer1.AutoOpen:=true;
      Mediaplayer1.Open;
      mediaplayer1.Play;
    end;procedure TForm1.MediaPlayer1Notify(Sender: TObject);
    begin
       with Sender as TMediaPlayer do
      begin
        //Form1.Caption := ModeStr[Mode];
        if (ModeStr[Mode]='Stopped') and (self.Repeatflag=true) then
        begin
          inc(self.CurrentPlay);
          Mediaplayer1.Close;
          mediaplayer1.AutoOpen:=false;
          mediaplayer1.FileName:=self.FilePath.Strings[CurrentPlay];
          mediaplayer1.AutoOpen:=true;
          Mediaplayer1.Open;
          mediaplayer1.Play;
        end;
        Notify := True;  end;end;end.