2017-01-15 37 views
0

我有一個UWP應用程序,需要訪問一個外部USB攝像頭,並能夠知道攝像頭按鈕何時出現。我可以使用MediaCapture來定位相機並顯示視頻流。問題是,我無法確定按鈕是否在設備上按下。我嘗試使用Windows.Devices.Usb連接到它,但由於設備類是0e,但它不在支持的類代碼列表中(https://msdn.microsoft.com/en-us/library/windows/hardware/dn312121(v=vs.85).aspx#step3),因此未成功連接。當我打電話給UsbDevice.FromIdAsync(mydeviceId)時,我總是得到Null返回。在這一點上,我試圖確定我的選擇是什麼來確定按鈕按下。UWP按鈕按下外部USB攝像頭

我有我的包清單如下:

<DeviceCapability Name="usb"> 
    <Device Id="vidpid:19ab 1050"> 
     <Function Type="classId:0e * *" /> 
    </Device> 
</DeviceCapability> 
+0

如果您想檢測外部USB攝像頭上的按鈕?如果是這樣,你應該能夠檢查它支持的攝像頭設備的OEM是否傳遞了按鈕信號給PC。此外,它似乎大多數沒有按鈕的外部USB攝像頭。那麼你爲什麼要檢測它? –

+0

這是一款顯微鏡USB攝像頭,它具有一個按鈕,允許用戶在不與PC交互的情況下捕捉圖像。問題是設備類ID是0e。也似乎不像Windows設備類支持的Windows.Devices.Usb命名空間 –

+0

我有完全相同的問題。但是爲了不簡化事情,我使用Java。你找到一個方法嗎?這是偶然的顯微鏡USB:https://plugable.com/products/usb2-micro-250x? –

回答

1

我沒有解決我的問題。問題出在我的能力定義上。我已將頁面和使用情況值顛倒過來。以下是更新後的功能。

<DeviceCapability Name="humaninterfacedevice"> 
     <Device Id="vidpid:19ab 1000"> 
     <Function Type="usage:FFA0 0001" /> 
     </Device> 
     <Device Id="vidpid:19ab 1020"> 
     <Function Type="usage:FFA0 0001" /> 
     </Device> 
</DeviceCapability>