![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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) из-за того, что на отправку данных тратится больше
времени, чем эти данные будут воспроизводиться. С другой стороны,
слишком большой буфер приведёт к увеличению задержки управления
над звуком. Так что нужно подбирать некий оптимальный размер.