我試圖在實況視頻上繪製一些東西。在我看來,最好的辦法是處理WM_PIANT事件。如何控制播放器的繪製
我的目的是讓玩家先抽獎,然後申請。這樣我就可以在視頻上畫畫。這意味着我希望在每次需要在窗口上繪製新框架然後處理事件之前收到通知。我使用DirectshowNet,所以我在C#編程(我有所有接口的C + +的API的 有)。我知道圖形管理器將某些窗口消息轉發給Video Renderer,例如WM_PAINT。
我該如何讓玩家在應用程序之前畫一個框架,而不是之後?
我試圖在實況視頻上繪製一些東西。在我看來,最好的辦法是處理WM_PIANT事件。如何控制播放器的繪製
我的目的是讓玩家先抽獎,然後申請。這樣我就可以在視頻上畫畫。這意味着我希望在每次需要在窗口上繪製新框架然後處理事件之前收到通知。我使用DirectshowNet,所以我在C#編程(我有所有接口的C + +的API的 有)。我知道圖形管理器將某些窗口消息轉發給Video Renderer,例如WM_PAINT。
我該如何讓玩家在應用程序之前畫一個框架,而不是之後?
WM_PAINT
是不是最好的方式,而且它是錯誤的方式。
退房從DirectShow.NET庫DxText
樣品。它的描述是:
示例應用程序顯示如何在 數據流上疊加文本字符串。該流是從avi文件中讀取的。
這是如此接近你想達到什麼。另一種方法被示出另一樣品有,在BitmapMixer
:
BitmapMixer是如何通過使用 VMR9視頻繪製的東西的示例。
該樣品主要是建立圍繞IVMRMixerBitmap9接口。 該接口接受位圖作爲GDI設備上下文或作爲Direct3D Surface。 Direct3D Surface的主要優勢在於它可以使用真正的Alpha透明度。 GDI DC不支持 alpha位圖,透明度通過使用顏色鍵控來實現。
本示例使用GDI +動態生成位圖。
我試過BitmapMixer,它不適合我,因爲我使用的是Graphic對象來繪製播放器,我在窗口上有一個真正透明的面板,然後創建了該面板的圖形,然後使用圖形對象的hdc與bitmapMixer的東西,然後我不能再繪製圖形,因爲從現在開始的圖形對象正在與其他人一起使用。現在我需要能夠在玩家身上動態地繪製某些東西,這意味着我將在玩家身上畫出不同的東西,並且他們會留在那裏。你有其他想法嗎?感謝幫助的人。 – Matan
DShow播放永遠不會透明。也就是說,您需要查看樣本,瞭解如何將幀從其中移出到「Graphic」對象,並且實際上不會將視頻可視化。相反,您將使用單獨的框架並以DShow以外的方式繪製它們。 –
不,這是不是我想要做的,我使用透明**面板**它是一個**控制**對象,我使它透明,我不希望玩家透明。 – Matan