Condividi tramite


Funzione MFCreateVirtualCamera (mfvirtualcamera.h)

Crea un oggetto fotocamera virtuale che può essere usato dal chiamante per registrare, annullare la registrazione o rimuovere la fotocamera virtuale dal sistema.

Sintassi

HRESULT MFCreateVirtualCamera(
  MFVirtualCameraType     type,
  MFVirtualCameraLifetime lifetime,
  MFVirtualCameraAccess   access,
  LPCWSTR                 friendlyName,
  LPCWSTR                 sourceId,
  const GUID              *categories,
  ULONG                   categoryCount,
  IMFVirtualCamera        **virtualCamera
);

Parametri

type

Membro dell'enumerazione MFVirtualCameraType che specifica il tipo di fotocamera virtuale. Nella versione corrente è supportato solo MFVirtualCameraType_SoftwareCameraSource .

lifetime

Membro dell'enumerazione MFVirtualCameraLifetime che specifica la durata della fotocamera. Se viene specificato MFVirtualCameraLifetime_Session , quando l'oggetto FMVirtualCamera restituito viene eliminato o FMVirtualCamera::Shutdown viene chiamato, la fotocamera virtuale non sarà più enumerabile o activatable nel dispositivo. Se si vuole che la fotocamera virtuale venga mantenuta in modo permanente tra sessioni e/o riavvii, è necessario specificare il valore MFVirtualCameraLifetime_System.

access

Membro dell'enumerazione MFVirtualCameraAccess che specifica l'ambito di accesso della fotocamera virtuale creata. Se viene specificato MFVirtualCameraAccess_CurrentUser , la fotocamera virtuale viene creata solo per l'account utente che ha chiamato MFCreateVirtualCamera. Se viene specificato MFVirtualCameraAccess_AllUsers , tutti gli utenti del dispositivo potranno enumerare o attivare la fotocamera virtuale. Per creare una fotocamera virtuale con MFVirtualCameraAccess_AllUsers, il chiamante di MFCreateVirtualCamera deve disporre delle autorizzazioni di amministratore.

friendlyName

Nome descrittivo della stringa Unicode leggibile dall'utente per la fotocamera virtuale creata. La pipeline aggiungerà automaticamente "Fotocamera virtuale Windows" al nome descrittivo specificato per garantire che gli utenti finali possano distinguere le fotocamere virtuali dalle fotocamere fisiche in base al nome descrittivo. Questo parametro non deve essere nullptr.

sourceId

CLSID univoco dell'origine multimediale personalizzata da attivare per questa fotocamera virtuale. La stringa deve essere nel formato "{CLSID}". Questo parametro non deve essere nullptr.

categories

Elenco facoltativo delle categorie di interfaccia del dispositivo in cui è registrata la fotocamera virtuale. Se un utente non amministratore richiama MFCreateVirtualCamera, le categorie devono essere un subset dei valori seguenti:

Se viene specificato nullptr, la fotocamera virtuale viene registrata nella KSCATEGORY_VIDEO_CAMERA, KSCATEGORY_VIDEO e KSCATEGORY_CAPTURE categorie.

categoryCount

Numero di categorie fornite nel parametro categorie . Se le categorie sono nullptr, categoryCount deve essere 0.

virtualCamera

Parametro di output che riceve l'FMIVirtualCamera appena creato. Questo parametro non deve essere nullptr.

Valore restituito

Restituisce un valore HRESULT, incluso ma non limitato ai valori seguenti:

Codice di errore Descrizione
S_OK Completato
E_INVALIDARG Un parametro di input non è valido.
E_POINTER Il parametro virtualCamera è nullptr.
E_ACCESSDENIED Il controllo privacy è impostato per negare l'accesso alla fotocamera per l'app, l'utente o il sistema. Oppure il chiamante non è un amministratore e i parametri forniti sono validi solo per l'accesso amministratore.

Commenti

La fotocamera virtuale creata da MFCreateVirtualCamera viene chiaveta dai parametri passati a questa API. Mantenendo gli stessi parametri, le applicazioni possono riaprire la stessa fotocamera virtuale. Quando viene chiamato per la prima volta, l'FMIVirtualCamera risultante contiene un set di informazioni di configurazione che possono essere modificate o aggiornate dal chiamante per creare una nuova istanza di una fotocamera virtuale. Se gli stessi parametri vengono usati per questa funzione nelle chiamate successive, il metodo FMVirtualCamera risultante aprirà la fotocamera virtuale esistente quando viene chiamato il metodo FMVirtualCamera::Start o FMIVirtualCamera::Stop . La chiamata a IMFVirtualCamera::Remove rimuoverà la fotocamera virtuale esistente. Se MFVirtualCameraAccess_CurrentUser viene specificato per il parametro di accesso , ogni account utente ottiene una fotocamera virtuale univoca.

L'applicazione UWP e Packaged deve dichiarare la funzionalità del dispositivo webcam nel manifesto per usare questa API. Questa API è soggetta anche al controllo della privacy della webcam in modo che quando la privacy è impostata per negare l'accesso, questa API comporterà un errore di E_ACCESSDENIED.

Nota

Le app UWP e packaged non devono richiamare MFCreateVirtualCamera nel thread dell'interfaccia utente. In questo modo verrà potenzialmente attivato un deadlock perché la finestra di dialogo di consenso per l'accesso alla webcam verrà bloccata.

Requisiti

   
Client minimo supportato Windows Build 22000
Intestazione mfvirtualcamera.h
Libreria mfsensorgroup.lib
DLL mfsensorgroup.dll

Vedi anche

FMVirtualCamera MFVirtualCameraTypeMFVirtualCameraLifetimeMFVirtualCameraAccess