我正在使用Windows核心音頻函數(主要是WASAPI)渲染獨佔流,遵循獨佔模式流中的示例。核心音頻(WASAPI)緩衝區事件時序
這會創建兩個交替緩衝區,並且交替播放和填充。有一個綁定到緩衝區完成的事件喚醒了線程,所以它可以重新填充剛剛完成的緩衝區。 GETPOSITION顯示當前緩衝區位於160幀緩衝區的第147幀時,線程被喚醒。這讓我有13/160的緩衝時間來獲得新的緩衝區,填充它並釋放它。我有很多計算要做,這是不夠的時間。我想我可以保持處理器的控制權,而不是在緩衝區填滿時進行睡眠,但這似乎不是正確的解決方案。
此外,即使我的進程是「PRO AUDIO」並且優先級爲25,但有時緩衝區完成事件仍會延遲,因此係統開始重新播放未填充的緩衝區。我還沒有找到關於這個時機應該如何工作或者如何控制的討論。我預計緩衝區完成事件會在少量幀內到達下一個緩衝區。有人熟悉這個東西嗎?要麼提供解決方案,要麼提供關於在哪裏尋找的線索?