Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Midi в ресурсах [D5, Win95/98]


Zja ©   (2001-12-26 01:13:00) 

Как запихнуть midi-файл в ресурс и ( главное!!! ) как его потом проиграть оттуда?


Evgeny   (2002-01-22 07:47:00) [1]

Видел программу, которая делает это без создания временного файла (это точно). Вот как она (или он программист) это делает?


copyr25   (2002-01-22 07:35:00) [2]

//NN.RC:
//MIDRES RCDATA NAME.MID
...
{$R *.DFM}
{$R NN.RES}
...

//загружаем файл из ресурса
ZMID:=FindResource(HInstance,"MIDRES",RT_RCDATA);
IF MIDHandle<>0 then begin
MIDHandle:=LoadResource(HInstance,ZMID);
CopyMemory(@bufer,Pointer(MIDHandle),SizeofResource(HInstance,ZMID));

//Создаем временный файл file.mid
AssignFile(TempFile,"~temp.mid");
REWRITE(TempFile,1);
BlockWrite(TempFile,Bufer[0],SizeofResource(HInstance,ZMID));
CloseFile(TempFile);

//Проигрываем
MediaPlayer1.FileName:="~temp.mid";
MediaPlayer1.Open;
MediaPlayer1.Notify:=True;
MediaPlayer1.Play;
end;

//Удаляем файл
procedure TForm1.FormDestroy(Sender: TObject);
begin
DeleteFile("~temp.mid");
end;


ZEE   (2001-12-26 13:29:00) [3]

Засунуть просто: создаешь текстовый файл mymidi.rc в нем пишешь строку "midimusic RCDATA music.mid", потом компилишь его с помощью BRCC32.EXE и в результате получается ресурсный файл mymidi.res, который надо подключить к своей проге.
А вот с воспроизведение сложнее, могу подсказать разве что такой вариант из ресурсов файл можно сохранять куда-нибудь на диск - воспроизводить его, а потом удалять. Но надеюсь есть способ и по-проще...


Наверх

Титульная страница Поиск, карта сайта Написать письмо