2014-07-02 128 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