播放资源文件中的 WAVE 资源

1、创建资源文件 snd.rc,使用 brcc32.exe 编译这个资源文件,得到 snd.res:

//rc 文件:
sound1 WAVE "SoundFile1.wav"
sound2 WAVE "SoundFile2.wav"

2、将 snd.res 编译进项目并播放:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
{$R .\snd\snd.res}  // 引入资源文件

uses MMSystem; {下面用到的 sndPlaySound、PlaySound 都是在此单元声明的}

procedure TForm1.Button1Click(Sender: TObject);
var
  rs: TResourceStream;
begin
  rs := TResourceStream.Create(HInstance, 'sound1', 'WAVE');
  sndPlaySound(rs.Memory, SND_ASYNC or SND_MEMORY);
  rs.Free;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  rs: TResourceStream;
begin
  rs := TResourceStream.Create(HInstance, 'sound2', 'WAVE');
  PlaySound(rs.Memory, HInstance, SND_ASYNC or SND_MEMORY);
  rs.Free;
end;

end.

 

posted @ 2020-03-27 12:08  汉学  阅读(123)  评论(0)    收藏  举报