我正在尝试在WPF中使用MediaElement控件来播放视频。它在Vista中运行良好,但是当我在XP机器上运行时,我会在显示器上撕裂。它看起来好像没有使用垂直同步,只是在画面中间更新。
任何人都知道如何解决这个问题?
答案 0 :(得分:2)
与Vista相比,这更多地与WPF在XP下呈现屏幕的方式有关。在Vista下,应用程序渲染到屏幕外缓冲区,然后将其与已更改的其他窗口合并,并通过名为DWM.exe的进程以适当的间隔显示在屏幕上。这可以(并且可能确实)将WPF的窗口更新呈现给与刷新间隔同步的视频缓冲区。
在XP上,WPF使用DirextX直接渲染到屏幕并随时更新视频缓冲区。可能有某种方法可以让它与刷新间隔同步,但我没有调查它,因为我不再使用XP了。