2017-01-16 5 views
6

카메라가 Microsoft Surface에서 회전하는지 확인할 수있는 확실한 방법이 있습니까?Microsoft Surface에서 카메라 회전을 감지합니까?

기본적으로 특정 카메라가 장치에 내장되어 있는지 (장치와 함께 회전 할 것인지) 알고 싶습니다.이 방법을 쿼리 할 수 ​​있습니까?

내 문제는 사용자가 장치를 회전 할 때 내 카메라보기가 뒤집혀 있지만 활성 카메라가 외부 USB 카메라 일 수 있으므로 읽기 프레임을 회전해야한다고 생각할 수 없다는 것입니다.

Media Foundation API를 사용하여 카메라를 읽었습니다.

+0

이 방법이 도움이 될지 잘 모르겠지만 카메라의 미디어 유형 인 MF_MT_DEFAULT_STRIDE 속성을 확인할 수 있습니다. https://msdn.microsoft.com/en-us/library/windows/desktop/ms698965(v = vs.85) .aspx. "보폭은 하향식 이미지에서는 양수이고 상향식 이미지에서는 음수입니다." – VuVirt

+0

그럴 것 같지 않습니다. 예를 들어 장치가 90도 회전 할 수 있습니다. :( – monoceres

+1

오히려 ['MF_MT_VIDEO_ROTATION'] (https://msdn.microsoft.com/en-us/library/windows/desktop/hh162880)이지만 표면 카메라가 실제로 사용하고 있는지 확실하지 않습니다. –

답변

2

기본적으로 특정 카메라가 장치에 내장되어 있는지 알고 싶습니다. [...]이 방법을 쿼리 할 수 ​​있습니까?

UWP를 사용하면 카메라 DeviceInformationenclosureLocation을 확인할 수 있습니다. 어느 panel 속성이다 : 외부 카메라

전체 예컨대

집적 카메라
  • front/back/또는
  • unknownCameraStarterKit 샘플에서 유효하다. 당신이 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 registerPLD_Panel 키의 값이 매우 유사한 값으로 DWORD해야

    HKLM\SYSTEM\CurrentControlSet\Control\InternalDeviceModification\{GUID} 
    

    의 물리적 위치 위에서 참조한 Panel 열거 형

    여기서, 6unknown을 의미합니다. 따라서이 레지스트리 키의 존재 여부를 확인할 수 있어야하며, 존재하는 경우 값을 확인하십시오. 나는 이것이 UWP가 두포에서하는 것과 유사하다고 생각한다.

    실패하면 카메라 공급 업체 및 제품 ID 또는 MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME의 값을 하드 코딩하여 지원을 해킹 할 수도 있습니다.

+0

다음과 같이 보입니다. 정확히 내가 필요한 것. 훌륭해!그러나 내 Surface Pro 3 장치 (Windows 10 실행)에서 regedit를 보면 InternalDeviceModification 키가 없습니다. 어떤 아이디어? – monoceres