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

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

WaveOutWrite - сколько пихать? [D7, WinXP]


Vovan #2 ©   (2007-01-22 14:16:00) 

Продолжаю серию вопросов, связанную с WaveForm Audio. Я обнаружил, что могу предложить устройству хоть весь звуковой файл сразу, при этом могу получать текущую позицию проигрывания когда угодно через waveOutGetPosition (т.е. обеспечивать визуализацию). Вопрос: а можно ли так поступать или лучше всё же делить на части?


TRUNK   (2007-01-22 17:18:00) [1]

Всё зависит от того, какой контроль нужно иметь над звуком.
Если нужно управлять звуком в реальном (почти реальном) времени,
например, изменять АЧХ, то нужно посылать данные небольшими порциями.
Весь файл целиком я бы не посылал - лучше делать это порциями
скажем по 4096...16384 байтов, не забывая про двойную буферизацию.
Слишком маленький размер буфера увеличивает вероятность появления
щелчков (gaps) из-за того, что на отправку данных тратится больше
времени, чем эти данные будут воспроизводиться. С другой стороны,
слишком большой буфер приведёт к увеличению задержки управления
над звуком. Так что нужно подбирать некий оптимальный размер.


Наверх

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