2011-05-04 16 views
0

有沒有辦法獲得當前正在播放視頻的窗口的窗口句柄。這是我的程序唯一的信息。我們可以得到正在播放視頻的窗口的窗口句柄嗎?


更新,包括提供不正確作爲一個答案

我想我應該解釋一下我想在這裏實現什麼信息。

我其實想要將我的DVD數據共享/流式傳輸到遠程機器上。目前我正在做的是,我將屏幕/視頻捕獲到靜幀並將其發送到遠程系統,但現在我不想在主機上看到正在播放的視頻。我可以想到很少可能的解決方案,

1.)如果我們可以捕獲隱藏/最小化窗口的數據。

做了一些調查,似乎是不可能的。請添加您的想法。

2.)將DVD數據格式轉換爲ffmpeg格式並進行流式處理。

不知道我們是否可以轉換數據格式。如果大多數DVD格式允許隱藏,那麼我可以選擇這個選項,但不知道它有多複雜。

3.)將創建一些虛擬表面播放DVD數據到該表面並捕獲該表面的屏幕。

再次不確定DVD是否會在內核模式驅動程序創建的虛擬/假表面上播放。

+0

哪個程序正在播放視頻?各種程序有各種方法。 – Piskvor 2011-05-04 11:33:14

回答

0

在windows上可能有三個主要的回放引擎; DirectShow(WMP,MPC),ffmpeg(VLC,MPlayer)和QuickTime。

如果您仔細觀察DirectShow,將會看到它支持硬件疊加,窗口化和無窗口渲染以及Direct3d表面支持。

即使您專注於單個應用程序,您也會遇到問題,因爲您不知道使用的是哪種呈現器。您可能能夠找到一個與視頻始終具有相同位置和尺寸的子窗口,但此時您依賴的是可能會在各個版本之間進行更改的內容等。

+0

而AVI和MediaFoundation--至少有4種不同的媒體播放引擎僅僅來自微軟,更不用說Flash視頻播放引擎以及webkit和基於壁虎的瀏覽器使用的視頻渲染引擎。 – 2011-05-04 13:24:02

+0

@Larry:是的,但我沒有看到有關MCI/VFW/ActiveMovie/DirectShow/MediaFoundation的詳細信息。 Flash和瀏覽器是一個很好的觀點。 – Anders 2011-05-04 16:25:03

+0

調出3意味着這是一個可控制的問題,事實並非如此。 – 2011-05-05 03:14:08