Аудио задержки против надежности

Есть ли компромисс между задержкой и надежностью аудиопотока в Windows с использованием WASAPI?

То есть, если я программирую приложение WASAPI и мне нужна минимальная задержка, будет ли аудиопоток подвержен большему количеству щелчков и щелчков и звуковых помех, чем если бы я использовал более высокую задержку? Является ли использование минимальной задержки "бесплатным обедом" или чем-то, что сопровождается оговорками?

1 ответ

Решение

Задержка является функцией размера буфера (например, bufferSize/sampleRate). Увеличивая размер буфера, вы уменьшаете вероятность того, что цифро-аналоговый преобразователь будет использовать текущий буфер выборок до того, как ОС предоставит вашему приложению шанс заполнить следующий буфер. Недостатком является то, что задержка увеличивается. Эффект увеличения задержки заключается в том, что изменения, которые вы делаете во время воспроизведения (например, увеличение громкости), не будут слышны, пока не будет воспроизведен следующий буфер. В крайнем случае вы можете представить себе буфер с 1 сэмплом между вашим приложением и звуковой картой. У вас будет нулевая задержка, но нет никакого способа, которым планировщик Windows будет обслуживать вас достаточно регулярно, чтобы предотвратить выпадение.

Бесплатного обеда не существует, но поскольку компьютеры продолжают ускоряться, шансы на переполнение буфера значительно снизились.

Другие вопросы по тегам