2014-07-02 84 views
0

我被Interop.quartztypelib在作出媒体播放器使用C#一个奇怪的行为惹恼了。与帮助此链接Interop.quartztypelib古怪的行为

http://www.codeproject.com/Articles/2632/DirectShow-MediaPlayer-in-C?msg=4853463#xx4853463xx

我创建了自己的视频播放器与Interop.quartztypelib。还有我实现一个重要的功能是,我的应用程序应该能够捕获视频图像,就像你点击“ALT” +“PRINTSCREEN”,使活动窗口的截图中的窗口。但出乎意料的是我发现的图像由我的应用程序来捕获(我用

Graphics.CopyFromScreen 

在我的代码),还有视频屏幕上没有视频图像!我得到的视频图像正在播放我的形式(视频播放),但不是的形象!然后点击“ALT”+“Printscreen”只会给我相同的结果! 我想知道如果这Interop.quartztypelib不支持图像捕捉。任何人都知道是否有办法做到这一点设置?谢谢。

回答

0

Printscreen doesn't do that

您需要实现切换出覆盖的一些方法,或让静止的一些其他的方式。硬件加速有一些技巧,但它不适用于你作为应用程序开发。你可能不得不渲染api的过时。

对于OpenGL API我认为这应该是glReadPixels。 支持DirectX here's a SO question。我会在你的案例中猜测它的directX。

+0

谢谢你的回复!从第一个链接“Printscreen不这样做”我通过改变destop上的硬件加速来解决问题。但无论如何,一个编程的方式来做到这一点是可取的。从链接“这是一个SO问题”,不幸的是我没有任何想法。你能否激发我一些?再次感谢! :) – jcraffael