![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Необходимо воспроизводить короткий wav файл(1-3 сек) в цикле (до 10 повторений) с паузой 1-10 сек. Пауза должна быть точно выдержана. Какие компоненты могут мне в этом помочь? пробовал просто вычислять длительность и проигрывать по таймеру- большой разброс в паузах, надо ч то посерьезнее. АЙ НИД ХЕЛППП!!!
|
|
#2
|
||||
|
||||
|
Вот статья на эту тему, нашёл в одном хэлпе по Delphi.
|
|
#3
|
|||
|
|||
|
Что то я там ничего не нашел по моей проблеме, просто проиграть файл я и так могу
![]() |
|
#4
|
||||
|
||||
|
Код:
var n: integer;
begin
if not (n=11) then begin
PlaySound('test.wav',0,SND_FILENAME);
Timer1.Interval := Timer1.Interval + 1000;
inc(n);
end else Timer1.Enabled := false;
end;Пойдет? Последний раз редактировалось Artem28, 30.08.2007 в 18:42. |
|
#5
|
||||
|
||||
|
Artem28 стандартный таймер очень не точный, его лучше не использовать.
Код:
var
LastTick : Cardinal;
ThisTick : Cardinal;
const
Interval = 10000; // 10 сек
..................
LastTick := GetTickCount;
while True do begin
ThisTick := GetTickCount;
if ThisTick - LastTick >= Interval then begin
PlaySound('SomeSound.wav', 0, SND_FILENAME);
LastTick := ThisTick;
end;
end;Код:
var
LastTick : Cardinal;
ThisTick : Cardinal;
PlayedTimes : Integer;
const
Interval = 10000; // 10 сек
TimesToPlay = 10; // скока раз воспроизвести
..................
PlayedTimes := 0;
LastTick := GetTickCount;
while True do begin
ThisTick := GetTickCount;
if ThisTick - LastTick >= Interval then begin
PlaySound('SomeSound.wav', 0, SND_FILENAME);
PlayedTimes := PlayedTimes + 1;
if PlayedTimes = TimesToPlay then
Break;
LastTick := ThisTick;
end;
end;Последний раз редактировалось zip000, 30.08.2007 в 21:16. |
|
#6
|
|||
|
|||
|
Последний вариант хорошо работает при "беспаузном" цикле, но при попытке выставить какую либо паузу получается какая то фигня. Отсюда вопрос: как узнать точную длительность wav-файла или момент окончания его проигрывания? тогда б все проблемы были решены с максимальной точностью
![]() |
|
#7
|
||||
|
||||
|
|
|
#8
|
|||
|
|||
|
После прочтения статейки все заработало. Определил длительность и все стало огонь. Всем спасибо
|