Función MFCreateVirtualCamera (mfvirtualcamera.h)
Crea un objeto de cámara virtual que el autor de la llamada puede usar para registrar, anular el registro o quitar la cámara virtual del sistema.
Sintaxis
HRESULT MFCreateVirtualCamera(
MFVirtualCameraType type,
MFVirtualCameraLifetime lifetime,
MFVirtualCameraAccess access,
LPCWSTR friendlyName,
LPCWSTR sourceId,
const GUID *categories,
ULONG categoryCount,
IMFVirtualCamera **virtualCamera
);
Parámetros
type
Miembro de la enumeración MFVirtualCameraType que especifica el tipo de cámara virtual. En la versión actual, solo se admite MFVirtualCameraType_SoftwareCameraSource .
lifetime
Miembro de la enumeración MFVirtualCameraLifetime que especifica la duración de la cámara. Si se especifica MFVirtualCameraLifetime_Session , cuando se elimina el objeto IMFVirtualCamera devuelto o se llama a IMFVirtualCamera::Shutdown , la cámara virtual ya no será enumerable ni activable en el dispositivo. Si desea que la cámara virtual persista entre sesiones o reinicios, debe especificar el valor MFVirtualCameraLifetime_System.
access
Miembro de la enumeración MFVirtualCameraAccess que especifica el ámbito de acceso de la cámara virtual creada. Si se especifica MFVirtualCameraAccess_CurrentUser , la cámara virtual solo se crea para la cuenta de usuario que llamó a MFCreateVirtualCamera. Si se especifica MFVirtualCameraAccess_AllUsers , todos los usuarios del dispositivo podrán enumerar o activar la cámara virtual. Para crear una cámara virtual con MFVirtualCameraAccess_AllUsers, el autor de la llamada de MFCreateVirtualCamera debe tener permisos de administrador.
friendlyName
Nombre descriptivo de cadena Unicode terminada en null y legible por el usuario para la cámara virtual creada. La canalización anexará automáticamente "Cámara virtual de Windows" al nombre descriptivo proporcionado para garantizar que los usuarios finales puedan distinguir las cámaras virtuales de las cámaras físicas en función del nombre descriptivo. Este parámetro no debe ser nullptr.
sourceId
ClSID único del origen multimedia personalizado que se va a activar para esta cámara virtual. La cadena debe tener el formato "{CLSID}". Este parámetro no debe ser nullptr.
categories
Lista opcional de categorías de interfaz de dispositivo en las que se registra la cámara virtual. Si un usuario que no es administrador invoca MFCreateVirtualCamera, las categorías deben ser un subconjunto de los valores siguientes:
Si se especifica nullptr, la cámara virtual se registra en las categorías KSCATEGORY_VIDEO_CAMERA, KSCATEGORY_VIDEO y KSCATEGORY_CAPTURE.
categoryCount
Número de categorías proporcionadas en el parámetro categories . Si categories es nullptr, categoryCount debe ser 0.
virtualCamera
Parámetro output que recibe el FMIVirtualCamera recién creado. Este parámetro no debe ser nullptr.
Valor devuelto
Devuelve un valor HRESULT, incluidos, entre otros, los siguientes valores:
Código de error | Descripción |
---|---|
S_OK | Correcto |
E_INVALIDARG | Un parámetro de entrada no es válido. |
E_POINTER | El parámetro virtualCamera es nullptr. |
E_ACCESSDENIED | El control de privacidad se establece para denegar el acceso a la cámara de la aplicación, el usuario o el sistema. O bien, el autor de la llamada no es un administrador y los parámetros proporcionados solo son válidos para el acceso de administrador. |
Comentarios
La cámara virtual creada por MFCreateVirtualCamera se clave de los parámetros pasados a esta API. Al mantener los mismos parámetros, las aplicaciones pueden volver a abrir la misma cámara virtual. Cuando se llama por primera vez, el IMFVirtualCamera resultante contiene un conjunto de información de configuración que el autor de la llamada puede modificar o actualizar para crear una nueva instancia de una cámara virtual. Si se usan los mismos parámetros para esta función en llamadas posteriores, se abrirá la cámara virtual existente cuando se llame al método IMFVirtualCamera::Start o IMFVirtualCamera::Stop. Al llamar a IMFVirtualCamera::Remove , se quitará la cámara virtual existente. Si se especifica MFVirtualCameraAccess_CurrentUser para el parámetro de acceso , cada cuenta de usuario obtiene una cámara virtual única.
UWP y Aplicación empaquetada deben declarar la funcionalidad del dispositivo webcam en su manifiesto para poder usar esta API. Esta API también está sujeta al control de privacidad de la cámara web, por lo que cuando se establece la privacidad para denegar el acceso, esta API producirá un error de E_ACCESSDENIED.
Nota:
Las aplicaciones empaquetadas y UWP no deben invocar MFCreateVirtualCamera en su subproceso de interfaz de usuario. Si lo hace, se desencadenará un interbloqueo, ya que se bloqueará la comprobación del Administrador de acceso de funcionalidad para el cuadro de diálogo de consentimiento del acceso a la cámara web.
Requisitos
Cliente mínimo compatible | Windows Build 22000 |
Encabezado | mfvirtualcamera.h |
Library | mfsensorgroup.lib |
Archivo DLL | mfsensorgroup.dll |
Consulte también
IMFVirtualCameraMFVirtualCameraTypeMFVirtualCameraLifetimeMFVirtualCameraAccess