2011-06-01 39 views
2

我有一個項目,我需要記錄使用DirectShow從攝像頭的視頻,但我需要能夠停止錄製,同時預覽繼續運行。Directshow的記錄/預覽問題

我使用WPFMediaKit

http://wpfmediakit.codeplex.com/

的問題是,當我錄製視頻暫停功能還停留在預覽窗格中的應用

我是新來的DirectShow,任何建議,就如何是可以解決這個問題或解決方案

非常感謝你。

PS我使用C#& WPF

+0

您是否嘗試過創建兩個圖?一個用於預覽,另一個用於錄製? – yms 2011-06-01 16:43:43

+0

我現在用的是WPFMEdiaKit控制,我不知道DirectShow中發現舒服,所以我猜他們在控制 – 2011-06-01 21:18:19

回答

3

我不知道該WPFMediaKit,但基本上當你要開始/停止錄製,同時保持預覽,您將需要兩個圖,有所爲那些之間的連接圖表。看看pdf documentGMFBridge頁面。

+0

@大衛我覺得你最好的選擇是遵循Wimmel建議創建一個圖表。由於您可以下載和修改WPFMediaKit的源代碼,因此您應該可以在其上集成GMFBridge過濾器。 – yms 2011-06-02 22:31:55

+0

我正在執行此操作,我收到一個異常 「沒有可用的樣本緩衝區分配器。」 你是否熟悉這個例外? – 2011-06-03 22:13:31

+0

@大衛,沒有我不.... – wimh 2011-06-04 07:18:33

3

如果當您開始/停止錄製,不想用的東西就像一個2圖GMFBridge方法,您可以接受預覽瞬間的停頓,你可以斷開該視頻捕捉源過濾器上的捕獲引腳(假設你正在使用單獨的預覽和源過濾器中的捕獲引腳)或斷開捕獲子圖的文件寫入器鏈部分。

這裏的問題是必須FilterGraph動態暫停可以改變其拓撲結構進行之前,所以你需要:

暫停圖 斷開或重新連接文件寫入鏈 恢復圖

在我的經歷暫時停頓不是很明顯。

+0

謝謝你,我把週末和合並GMFBridge與WPFMediaKit它的偉大工程一起,我希望我可以釋放以此爲WPFMediaKit開源項目補丁並幫助人們在未來,我願意與任何詢問 – 2011-06-07 11:21:28

+0

的人分享代碼@David這是一個很好的答案,你至少應該加入它。 – yms 2011-06-09 22:32:52

0

請使用ICaptureGraphBuilder2的StreamControl方法,它爲您提供單獨控制在圖形中的任何過濾器。