%EF%BC%8C%E5%B0%8E%E8%87%B4%E9%9F%B3%E8%A8%8A%E5%95%9F%E5%8B%95%E5%BB%B6%E9%81%B2.png)
執行 Windows Server 2012 R2 我注意到 RDP 連線上有一個煩人的功能:
audiodg.exe
如果音訊服務閒置超過 5 分鐘,Windows 就會不斷終止該服務。
這樣做的問題是,任何新的音訊輸出現在都會遭受 5-10 秒的啟動延遲,必須等待audiodg.exe
再次假脫機才能開始音訊輸出。
我已經看到在所有 Windows Server 版本上多次討論 RDP 連接的音訊延遲問題,但我還沒有看到有人提到這可能是所有這些問題的原因。
audodg.exe 的 spoolup 時間將延遲伺服器上的所有音訊。音訊來自哪裡並不重要。帶有音訊回饋的互動式應用程式將不同步,Chrome 上的 Youtube 影片將凍結,直到 audiodg 再次運行。
在我的伺服器上,audiodg 在啟動時消耗 100% CPU。我不知道它在做什麼,但在恢復正常音訊之前,它會以 100% CPU 執行大約 5-10 秒的操作。
一旦啟動並運行,所有音訊都是即時的。沒有延遲或滯後。只要繼續運行,一切都會正常工作。
我發現解決這個煩人的「功能」的唯一方法是創建一個重複任務,每 4 分鐘播放幾秒鐘的聲音(靜音),以防止 Windows 殺死 audiodg。
這似乎是一個愚蠢的解決方案。
我想到了幾個問題(我認為按重要性排序):
在不採取駭客解決方案的情況下,我怎麼能從一開始就防止audiodg被殺死呢?某處有這樣的註冊表設定嗎?我已將服務設為“手動”,但這沒有任何區別。自動/手動..無論如何都有同樣的問題。
為什麼audiodg啟動這麼慢?我認為這也可能是某種錯誤或意外功能。
更新
看來我在這裡找到了問題2的答案:
進程audiodg.exe掃描catroot和hogs IO