是否有可靠的方法来确定相机是否在 Microsoft Surface 上旋转?
基本上,我想知道设备中是否内置了特定的摄像头(因为它会随着设备旋转),有没有办法查询这个?
我的问题是,当用户旋转设备时,我的摄像头 View 会翻转,但我不能假设我应该只旋转读取的帧,因为事件摄像头可能是外部 USB 摄像头。
我正在使用媒体基础 API 读取摄像头。
最佳答案
Basically, I want to know if a specific camera is built into the device [...] is there a way to query this?
使用 UWP,您可以检查相机的 DeviceInformation
的 enclosureLocation
. panel
属性,可以是:
front
/back
/etc 用于集成摄像头或未知
外置摄像头
CameraStarterKit 中提供了完整示例样本。
但是,如果您不能使用 UWP,应该仍然可以找到底层信息。使用 MF,您应该能够访问 MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK
.
这会是这样的
\\?\usb#vid_046d&pid_0843&mi_00#6&2314864d&0&0000#{e5323777-f976-4f5b-9b55-b94699c46e44}\global
内置摄像头是supposed to register它的物理位置在
HKLM\SYSTEM\CurrentControlSet\Control\InternalDeviceModification\{GUID}
其中 PLD_Panel
的值键应该是一个 DWORD,其值与上面引用的 Panel
枚举非常相似。
这里,6
表示未知
。因此,您应该能够检查此注册表项是否存在,如果存在,则检查其值。我怀疑这类似于 UWP 在幕后所做的事情。
否则,您还可以通过对相机供应商和产品 ID 或 MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME
的一些值进行硬编码来获得支持。的。
关于windows - 检测 Microsoft Surface 上的相机旋转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41674758/