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

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

Играем звуки непрерывно [D6, Win95/98, WinME, Win2k]


Zavdim ©   (2002-07-09 12:25:00) 

Мне надо сыграть группу стримов wav, но так чтобы при этом система постоянно проверялась и новый стрим не лез поперек батьки в пекло. Я использовал следующее:

PlaySound(pChar(s1),0,SND_Memory or SND_ASYNC or SND_NOSTOP);
while not(PlaySound(nil,0,SND_NOWAIT or SND_NOSTOP)) do
begin
Application.ProcessMessages;
if Application.Terminated then
begin
PlaySound(nil, 0, SND_PURGE);
Break;
end;
end;

Но как надо и как это написано в документации - это все работает под 2000, а под МЕ и 98 не хочет - сразу вырубает.

Что ей (форточке) - надо? Заранее благодарен.


Zavdim   (2002-07-10 11:07:00) [1]

Сам себе не поможешь - никто не поможет.
В общем надо так:
try
PlaySound(pChar(s1),0,SND_Memory or SND_ASync or SND_NOSTOP);
Application.ProcessMessages;
sleep(20);
s2:=AltSpeak("Pause");
while not(PlaySound(pChar(s2),0,SND_Memory or SND_NOSTOP or SND_ASync)) do
begin
Application.ProcessMessages;
if Application.Terminated or EditHTML.AbortSelectProcess then
begin
EditHTML.AbortSelectProcess := True;
PlaySound(nil, 0, SND_PURGE);
Break;
end;
end;
finally
sleep(100); //- Из-за шелчков
(PlaySound(nil,0, SND_Sync))
end;

Где s1 - Wav стрим. s2 - короткий стрим с нулевой амплитудой.
Вроде работает.


Наверх

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