Я пишу программу в Delphi 7 и думаю поставить музыку для запуска в фоновом режиме. Итак, я написал песню в формате .MIDI под названием Song.MID, теперь я хочу, чтобы моя программа Delphi автоматически извлекала (SFX) эту песню и выполняла ее, в конце программы удаляя ее. Я думаю, это как написать это в Hex. Как мне это сделать?
Delphi - Создайте программу Delphi, которая самостоятельно извлекает MIDI-файл.
Ответы (1)
Создайте новый текстовый файл и напишите: 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.
это самый простой пример. Итак, кейгены используют специальный звуковой формат - *.XM, файл считывается в память с ресурса и проигрывается с помощью библиотек типа FMOD (подробнее в инете)
person
The North Star
schedule
01.11.2015
TResourceStream
. Скорее всего, не нужно сохранять в файл. Просто играйте по памяти. Возможно, вы сможете дать проигрывателю URL-адрес, который идентифицирует ресурс и извлекает его, а затем воспроизводит. - person David Heffernan   schedule 01.11.2015