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

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

Зашивание wav'а в res и его проигрывание [D6, WinXP]


Страницы:   1 2

Pasha L ©   (2005-08-08 17:26:00) 

Здравствуйте.
Я хочу, чтобы в моей программе было несколько wav'ов, и чтобы они там проигрывались. Я прочитал, то ли как зашить в ехешник звуки, то ли как зашить их в какой-то один файл. Короче. Я создал mywav.rc, в котором написал
sndkey RCDATA LOADONCALL snd.wav

Потом переписал brcc32.exe в папку, где я всё это делаю. Потом создал bat файл, где написал
brcc32.exe mywav.rc

Запустил bat и получил mywav.res. В моей проге после implementation и {$R *.dfm} написал
{$R mywav.res}
Потом по инструкции создал процедуру извлечения звука из res файла
procedure tform1.RetrieveWaves;
var
 hResource: THandle;
 pData: Pointer;
begin
 hResource:=LoadResource(hInstance, FindResource(hInstance, 'sndkey', RT_RCDATA));
 try
   pData := LockResource(hResource);
   if pData = nil then
     raise Exception.Create('Cannot read sndkey');
   if not PlaySound('snd', 0, SND_MEMORY) then
     raise Exception.Create('Cannot play snd');
 finally
   FreeResource(hResource);
 end;
end;

Но вылезает 'Cannot play snd'. Вопросы:
1. Что неправильно?
2. Что в случае удачи дает мне этот способ (звук зашивается прямо эхэшник или только в res)?
3. Этим способом можно зашить несколько файлов или только один?


MetalFan   (2005-08-08 17:44:00) [21]

з.ы. попробуй просто:
PlaySound('snd', 0, SND_RESOURCE)


MetalFan   (2005-08-08 17:35:00) [22]

смотрим справку
BOOL PlaySound(
 LPCSTR pszSound,  
 HMODULE hmod,    
 DWORD fdwSound    
);
fdwSound

Flags for playing the sound. The following values are defined

SND_MEMORY - A sound event's file is loaded in RAM. The parameter specified by pszSound must point to an image of a sound in memory.

pszSound должен указывать на загруженный в память звук)


Страницы:   1 2

Наверх

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