Задержка звука в сравнении с надежностью

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

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


person omatai    schedule 11.03.2015    source источник


Ответы (1)


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

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

person jaket    schedule 11.03.2015
comment
Эти первые 8 слов — очень полезное утверждение о задержке! - person omatai; 20.03.2015