![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
требется проиграть ряд коротких ;wav-ок из памяти... [D6, WinXP]
pasechnik © (2002-12-15 17:26:00)а конкретнее, возникла проблема с Playsound из mmsystem, каждая вавка длительностью 60мс, и при проигрывании их Playsound-ом с параметром SND_SYNC возникают паузы между wav порядка 20-25мс, а их как раз и не надо. Требуется получить безынтервальный пакет. Пытался играть длительностью файлов - не помогает, snd_nostop - то же самое. Возможно стоит считать их в память а потом проиграть? Если можно примерный набросок кода.
zavdim (2002-12-17 06:34:00) [1]Пример писать не буду - поковыряйся.
я бы так сделал:
1. Все звуки одного формата - по битовости, частоте.
2. Можешь их все загрузить в память.
3. причем загрузить можешь только тела - без заголовков.
4. определяешь нужную последовательность.
5. формируешь в памяти эту последовательность из своих кусков и цепляешь на нее заголовок - он такой же как и у одиночных, только длину надо правильно проставить.
6. Затем играешь PlaySound из памяти этот кусок.
Возможно есть и другие решения, но пока с такой проблемой не сталкивался - посему другого решения не знаю.
pasechnik (2002-12-16 22:55:00) [2]Мне нужен пример показывающий каким образом можно имея два файла wav на диске или в ресурсах exe проиграть их друг за другом без паузы, а ля СКЛКЕИТЬ, подготовить массив данных и прогнать на звук.кар.
zavdim (2002-12-16 07:02:00) [3]Тебе формат Wav-ки надо, чтоб правильно склеить или как?
pasechnik (2002-12-15 18:29:00) [4]я и имел это ввиду, сборка в памяти,в принципе на помежутки в 5-10мс можно закрыть глаза. Может есть что-нибудь на эту тему?
Anatoly Podgoretsky (2002-12-15 17:43:00) [5]Дело наверно не с памятью, а самой системой, нужно время на вызов, инициализацию, если возможно, то стоить делать не одну вавку в памяти, а сразу пакет, то есть склеить их в одну целую.
За кодом надо в форум Мультимедия