|
|
Регистрация | << Правила форума >> | 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; Не профи, но и не чайник . D6 - лучше не придумали. Пока. Последний раз редактировалось zip000, 30.08.2007 в 21:16. |
#6
|
|||
|
|||
Последний вариант хорошо работает при "беспаузном" цикле, но при попытке выставить какую либо паузу получается какая то фигня. Отсюда вопрос: как узнать точную длительность wav-файла или момент окончания его проигрывания? тогда б все проблемы были решены с максимальной точностью
|
#7
|
||||
|
||||
|
#8
|
|||
|
|||
После прочтения статейки все заработало. Определил длительность и все стало огонь. Всем спасибо
|