2012-08-28 30 views
1

当我尝试拍摄我的桌面的屏幕截图时,我发现Windows Media Player窗口的区域为空,没有任何内容,我为它搜索了一段时间,发现大多数视频播放器的用户覆盖表面的表现,覆盖表面不能caputured,所以一些想法出来说,禁用DDraw加速,以便您可以从实时视频抓取静止图像,但是当播放器启动时,它是已经使用硬件加速,即使我禁用硬件加速,它将不会生效,直到我重新启动播放器,我的问题是:如何捕捉从实况视频的图像没有可扩展的ddraw加速?或如何使设置(禁用硬件加速)工作,而无需重新启动视频播放器?如何以编程方式从实况视频中捕获静态图像

  • 我不会用我的程序发挥VEDIO,我只是想拍摄静止图像 同时由第三方播放器播放,如Windows Media Player或者Real Player等...
  • 我想以编程方式做到这一点,通过C/C说 ++和DirectX,所以我不希望使用任何exsisting软件 或工具
  • 无论哪个球员在使用中,我的程序应该抓住它,我知道有些工具可以做到这一点,如CapTruetencent qq,所以我认为这是可能的。

回答

1

解决方法是使用vlc来播放文件。它直接提供了截图选项。

+0

谢谢,但我想通过C++和DirecX编程做到这一点 – zdd

+0

然后,你不能这样做的受保护内容。你必须下降到驱动程序级别来获得这样的内容。 – av501

+0

但我知道CapTrue和腾讯QQ可以做到这一点,我不认为他们在驱动程序级别这样做,因为不同的显卡和系统上的驱动程序差异很大,他们是否处理各种驱动程序和系统?这是巨大的工作量,我一定还有其他的方式。 – zdd

0

AFAIK,这是WMP中的一个有意识的“功能”,用于保护。如果你需要有WMP,那么你需要一个体面的屏幕抓取器。不幸的是,我所知道的hypersnap不是免费的。

如果你只想要一个框架的屏幕抓图,VLC是你的朋友,就像@zdd说的那样。

+0

对不起,我不想用我的程序播放视频,我只想在第三方播放器(如WMP或Real播放器等)播放时拍下它的快照。 – zdd

+0

我的意思是我想做这个以编程方式,无论使用哪个玩家,我的程序都应该能够捕捉到它。 – zdd

+0

我还没有自己尝试过,但可以使用[BitBlt](http://www.codeguru.com/cpp/article.php/c18347/C-Programming-Easy-Screen-Capture-Using-MFCATL.htm )或[WMP API](http://www.codeproject.com/Articles/5051/Various-methods-for- capturing-the-screen)。 –

相关问题