2009-01-13 141 views
1

我试图在WPF中使用MediaElement控件播放视频。它在Vista中效果很好,但是当我在XP机器上运行它时,我会在显示器上撕裂。它看起来好像不使用垂直同步,只是更新中间画面。WPF MediaElement视频播放撕裂

任何人都知道如何解决这个问题?

+0

由于我还没有找到解决方案,因此我决定在我的应用程序中使用interop托管Windows Media Player实例。它基本上可以工作(并且不会撕裂),但是我无法完成我计划使用WPF进行视频交叉淡入淡出的任何事情。 Bummer ... – GeekyMonkey 2009-01-15 12:22:14

回答

2

这与WPF渲染到XP下的屏幕的方式相比,Vista更多。在Vista下,应用程序渲染到屏幕外的缓冲区,然后与其他已更改的窗口合成,并通过名为DWM.exe的进程以适当的时间间隔显示在屏幕上。这可以(也可能是)将WPF的窗口更新呈现给与刷新间隔同步的视频缓冲区。

在XP上WPF使用DirextX直接渲染屏幕并随时更新视频缓冲区。可能有一些方法可以让它与刷新间隔同步,但是我没有看过它,因为我不再使用XP。