2012-08-28 31 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)。 –

相關問題