delphi mp3

https://zhidao.baidu.com/question/44595991

假定你的foo.rc如下bai:
music1 mymp3 a01.mp3
music2 mymp3 a02.mp3
//依次为资源名、类型du、具体文件名(zhi将在资源编译后被加入到foo.res文件中),在程序里使dao用的是其资源名,而不是本名。
procedure play(filename:string);
var
res:TResourceStream;
begin
//filename:='music1';
if fileexists('temp.mp3') then deletefile('temp.mp3');
sleep(100);
res:=TResourceStream.Create(hinstance,filename,'mymp3');
res.SaveToFile('temp.mp3');
res.Free;
sleep(100);
//res.Seek(0,soEnd);
//if res.Position=res.Size then showmessage(inttostr(res.size));
MCIsendstring('open temp.mp3 type mpegvideo alias tp',nil,0,0);
MCISendString('play tp from 0',nil,0,0);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
play('music1');//播放第一首
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
ret:array[0..255]of char;
begin
MCISendString('status tp mode',ret,sizeof(ret),0);
if string(ret)='stopped' then
begin
MCISendString('close tp',nil,0,0);
play('music2');//播放第二首
end;
end;

 

 

*************************

 

 

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, mmsystem;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
    {$R foo.res}


procedure play(filename:string);
var
res:TResourceStream;
begin
//filename:='music1';
if fileexists('temp.mp3') then deletefile('temp.mp3');
sleep(100);
res:=TResourceStream.Create(hinstance,filename,'mymp3');
res.SaveToFile('temp.mp3');
res.Free;
sleep(100);
//res.Seek(0,soEnd);
//if res.Position=res.Size then showmessage(inttostr(res.size));
MCIsendstring('open temp.mp3 type mpegvideo alias tp',nil,0,0);
MCISendString('play tp from 0',nil,0,0);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
play('music1');//播放第一首
end;

end.
 

 

 

delphi mp3