簡體   English   中英

如何在avicap32.dll中獲取已連接網絡攝像頭的列表?

[英]How to get list of connected WebCams in avicap32.dll?

我正在編寫一個處理WebCams的應用程序。 我必須使用avicap32.dll庫(這是一個外部約束)。 因此,在這里,我使用了該庫中的一些extern函數(必須為它們編組類型)以及user32(發送WindowsMessages)。 我挖了一半的Internet,但是找不到如何獲取所有已連接的WebCam設備的列表?

當然我完全了​​解功能:

[DllImport(avicap32dll)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool capGetDriverDescription(
    short driverIndex,
    StringBuilder name, int nameSize,
    StringBuilder version, int versionSize);

,但它提供了驅動程序列表,而不是攝像頭列表! 當我將兩台攝像機連接到PC時,通過此功能,我仍然只能找到一個捕獲驅動程序(檢查driverIndex從0到9)。 他們兩個都必須使用相同的捕獲驅動程序。 因此,沒有我無法真正決定要連接的WebCam的列表。 有WindowsMessage WM_CAP_DLG_VIDEOSOURCE,但在連接WebCam之前它不顯示視頻源對話框。

這是舊版API(適用於Windows的視頻,avicap32.dll),不像您期望的那樣靈活。 仍然受到支持。

覆蓋范圍最廣的較新API是DirectShow,它是本機的,但有了DirectShow.NET,您就可以連接到.NET。 看一下代碼示例和介紹這種方法的文章: 使用C#和DirectShow.NET查找網絡攝像頭

編輯:原始文章不再存在,但是在Internet存檔https://archive.org/web/中找到了一個副本

使用AForge.NET庫更容易,更好。 它包含完成這些工作的所有工具http://aforgenet.com/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM