2011-07-11 66 views
1

directshow.net示例文件夾(標記爲「2010年2月」)中的每個示例都編譯得很好,並且從文件播放視頻的效果很好。然而,每一個試圖枚舉FilterCategory.VideoInputDevices例子始終未能找到任何我的過濾器,具體 總是返回我沒有設備。在使用directshow.net的所有其他程序中,我都會遇到同樣的問題,例如touchless和codeplex上的各種示例。是directshow.net視頻輸入器濾波器枚舉破(在新的環境中)?

我已經安裝了四個視頻輸入濾波器(1個網絡攝像頭和3的屏幕捕獲過濾器)和他們發現/通過Windows自帶的SDK和RL過濾管理器圖形編輯器可用。這兩個程序列出了「視頻捕獲源」下的四個過濾器,每個Moniker都以directshow.net的FilterCategory.VideoInputDevices指向的正確GUID(「860BB310-5D01-11D0-BD3B-00A0C911CE86」)開頭。

我試着編譯並採用最新的dll的directshow.net自己,但什麼都沒有改變。

是有一些原因的包裝可以得到視頻渲染濾鏡罰款,但不枚舉視頻捕捉的呢?我在win7 sp1,64位,使用visual C#2010 express。我的環境中是否有東西造成這種情況如果我知道是什麼原因造成的,我會很樂意處理這個變化。

謝謝你的時間。

回答

0

我複製了GetDevicesOfCat代碼到我的項目,並開始調試它。如果我將它傳遞給VideoInputDevice之外的任何FilterCategory,它將獲得GraphEdit列出的大部分過濾器,但在大多數類別中它仍然缺少一些。我猜想有一些過濾器的屬性使得我無法獲得我編譯版本的GetDevicesOfCat。

原來簡單地切換我的平臺目標x86的開了竅,雖然它不是straightfoward在VS2010快遞(全新安裝,你必須跟隨第二個答案,你要做的第一前): Change target CPU settings in Visual Studio 2010 Express

該計劃現已成功地枚舉所有我的過濾器。

+1

無論如何,當平臺目標仍然是「x64」時,它有效嗎? – Vinshi

+0

@Vinshi當您使用平臺目標x64構建時,您只能看到爲x64註冊的過濾器以及可用x64驅動程序提供的設備。所以你需要不同的構建/ exe,每個平臺一個。您可以使用[GraphStudioNext](https://code.google.com/p/graph-studio-next/)查看可用的過濾器/設備,可以使用它的x64版本。 – CPlusSharp