MFCreateVirtualCamera 함수(mfvirtualcamera.h)
호출자가 시스템에서 가상 카메라를 등록, 등록 취소 또는 제거하는 데 사용할 수 있는 가상 카메라 개체를 만듭니다.
구문
HRESULT MFCreateVirtualCamera(
MFVirtualCameraType type,
MFVirtualCameraLifetime lifetime,
MFVirtualCameraAccess access,
LPCWSTR friendlyName,
LPCWSTR sourceId,
const GUID *categories,
ULONG categoryCount,
IMFVirtualCamera **virtualCamera
);
매개 변수
type
가상 카메라 유형을 지정하는 MFVirtualCameraType 열거형의 멤버입니다. 현재 릴리스에서는 MFVirtualCameraType_SoftwareCameraSource 만 지원됩니다.
lifetime
카메라의 수명을 지정하는 MFVirtualCameraLifetime 열거형의 멤버입니다. MFVirtualCameraLifetime_Session 지정한 경우 반환된 IMFVirtualCamera 개체가 삭제되거나 IMFVirtualCamera::Shutdown이 호출되면 가상 카메라는 더 이상 디바이스에서 열거 가능하거나 활성화할 수 없습니다. 가상 카메라가 세션 간 및/또는 다시 부팅을 통해 유지되도록 하려면 MFVirtualCameraLifetime_System 값을 지정해야 합니다.
access
만든 가상 카메라의 액세스 scope 지정하는 MFVirtualCameraAccess 열거형의 멤버입니다. MFVirtualCameraAccess_CurrentUser 지정한 경우 가상 카메라는 MFCreateVirtualCamera라는 사용자 계정에 대해서만 만들어집니다. MFVirtualCameraAccess_AllUsers 지정하면 디바이스의 모든 사용자가 가상 카메라를 열거하거나 활성화할 수 있습니다. MFVirtualCameraAccess_AllUsers 사용하여 가상 카메라를 만들려면 MFCreateVirtualCamera 호출자에게 관리자 권한이 있어야 합니다.
friendlyName
생성된 가상 카메라에 대한 null로 종료되고 사용자가 읽을 수 있는 유니코드 문자열 식별 이름입니다. 파이프라인은 제공된 식별 이름에 "Windows 가상 카메라"를 자동으로 추가하여 최종 사용자가 친숙한 이름에 따라 가상 카메라를 실제 카메라와 구분할 수 있도록 합니다. 이 매개 변수는 nullptr이 아니어야 합니다.
sourceId
이 가상 카메라에 대해 활성화할 사용자 지정 미디어 원본의 고유한 CLSID입니다. 문자열은 "{CLSID}" 형식이어야 합니다. 이 매개 변수는 nullptr이 아니어야 합니다.
categories
가상 카메라가 등록된 디바이스 인터페이스 범주의 선택적 목록입니다. 관리자가 아닌 사용자가 MFCreateVirtualCamera를 호출하는 경우 범주는 다음 값의 하위 집합이어야 합니다.
nullptr을 지정하면 가상 카메라가 KSCATEGORY_VIDEO_CAMERA, KSCATEGORY_VIDEO 및 KSCATEGORY_CAPTURE 범주에 등록됩니다.
categoryCount
categories 매개 변수에 제공된 범주 수입니다. 범주가 nullptr인 경우 categoryCount는 0이어야 합니다.
virtualCamera
새로 만든 IMFVirtualCamera를 수신하는 출력 매개 변수입니다. 이 매개 변수는 nullptr이 아니어야 합니다.
반환 값
다음 값을 포함하지만 이에 국한되지 않는 HRESULT 값을 반환합니다.
오류 코드 | 설명 |
---|---|
S_OK | 성공 |
E_INVALIDARG | 입력 매개 변수가 잘못되었습니다. |
E_POINTER | virtualCamera 매개 변수는 nullptr입니다. |
E_ACCESSDENIED | 개인 정보 제어는 앱, 사용자 또는 시스템의 카메라에 대한 액세스를 거부하도록 설정됩니다. 또는 호출자가 관리자가 아니며 제공된 매개 변수는 관리자 액세스에만 유효합니다. |
설명
MFCreateVirtualCamera에서 만든 가상 카메라는 이 API에 전달된 매개 변수에서 키가 지정됩니다. 동일한 매개 변수를 유지하면 애플리케이션에서 동일한 가상 카메라를 다시 열 수 있습니다. 처음 호출될 때 결과 IMFVirtualCamera에는 가상 카메라의 새 instance 만들기 위해 호출자가 수정하거나 업데이트할 수 있는 구성 정보 집합이 포함됩니다. 후속 호출에서 이 함수에 동일한 매개 변수를 사용하는 경우 IMFVirtualCamera::Start 또는 IMFVirtualCamera::Stop 메서드가 호출될 때 결과 IMFVirtualCamera가 기존 가상 카메라를 엽니다. IMFVirtualCamera::Remove를 호출하면 기존 가상 카메라가 제거됩니다. 액세스 매개 변수에 대해 MFVirtualCameraAccess_CurrentUser 지정한 경우 각 사용자 계정은 고유한 가상 카메라를 가져옵니다.
UWP 및 패키지된 애플리케이션은 이 API를 사용하려면 매니페스트에서 웹캠 디바이스 기능을 선언해야 합니다. 또한 이 API는 웹캠 개인 정보 보호 제어의 적용을 받으므로 개인 정보 보호가 액세스를 거부하도록 설정된 경우 이 API는 E_ACCESSDENIED 실패합니다.
참고
UWP 및 패키지된 앱은 UI 스레드에서 MFCreateVirtualCamera 를 호출해서는 안됩니다. 이렇게 하면 웹캠 액세스 동의 대화 상자에 대한 기능 액세스 관리자 검사 차단되므로 교착 상태가 발생할 수 있습니다.
요구 사항
지원되는 최소 클라이언트 | Windows Build 22000 |
머리글 | mfvirtualcamera.h |
라이브러리 | mfsensorgroup.lib |
DLL | mfsensorgroup.dll |
참고 항목
IMFVirtualCameraMFVirtualCameraTypeMFVirtualCameraLifetimeMFVirtualCameraAccess