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