Delphi - 制作一个自解压MIDI文件的Delphi程序

时间:2015-11-01 15:59:55

标签: delphi midi sfx

我正在Delphi 7中编写一个程序,我认为将音乐放在后台运行。所以,我在.MIDI中创作了一首名为Song.MID的歌曲,现在我想把我的Delphi程序自行提取(SFX)这首歌并执行,在程序结束时删除它。我想,就像用Hex写它一样。我该怎么做?

1 个答案:

答案 0 :(得分:3)

创建一个新的文本文件,并写入:MIDI RCDATA 1.mid,将文本文件保存为MID.rc 然后创建一个新的文本文件,并写入:brcc32 mid.rc,将其保存为" brcc.bat"

运行brcc.bat,将* .rc文件转换为* .res 将MediaPlayer移动到您的表单(媒体播放器位于"系统"选项卡上)。 现在将此代码复制到您的项目中:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    mplayer: TMediaPlayer;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

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

procedure TForm1.FormCreate(Sender: TObject);
var
  stream:tresourcestream;
  tmp:string;
begin
  try
    stream:=tresourcestream.Create(hinstance,'MIDI',RT_RCDATA);
    try
      setlength(tmp,300);
      setlength(tmp,GetTempPath(300,pchar(tmp)));
      tmp:=tmp+inttostr(hinstance)+'.mid';
      stream.SaveToFile(tmp);
    finally
      stream.free;
    end;
    mplayer.FileName:=tmp;
    mplayer.Open;
    mplayer.Play;
  except
  end;
end;

end.

这是最简单的例子。因此,keygens使用特殊的声音格式 - * .XM,文件从资源读入内存并使用FMOD等图书馆播放(在互联网上阅读更多)