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
MFVirtualCameraAccess列舉的成員,指定所建立虛擬相機的存取範圍。 如果指定 MFVirtualCameraAccess_CurrentUser ,則只會針對名為 MFCreateVirtualCamera的使用者帳戶建立虛擬相機。 如果指定 MFVirtualCameraAccess_AllUsers ,裝置上的所有使用者都能夠列舉或啟用虛擬相機。 若要使用 MFVirtualCameraAccess_AllUsers建立虛擬相機, MFCreateVirtualCamera 的呼叫端必須具有系統管理員許可權。
friendlyName
建立之虛擬相機的使用者可讀取 Unicode 字串易記名稱,以 Null 終止。 管線會自動將「Windows 虛擬相機」附加至提供的易記名稱,以確保終端使用者可以根據易記名稱區分虛擬相機與實體相機。 此參數不得為 nullptr。
sourceId
要為此虛擬相機啟用之自訂媒體來源的唯一 CLSID。 字串必須是 「{CLSID}」 格式。 此參數不得為 nullptr。
categories
註冊虛擬相機的裝置介面類別別目錄選擇性清單。 如果非系統管理員使用者叫用 MFCreateVirtualCamera,則類別必須是下列值的子集:
如果指定 nullptr,虛擬相機會在KSCATEGORY_VIDEO_CAMERA下註冊,KSCATEGORY_VIDEO和KSCATEGORY_CAPTURE類別。
categoryCount
category 參數中提供的 類別 數目。 如果 category 為 nullptr, categoryCount 必須是 0。
virtualCamera
接收新建立 之 IMFVirtualCamera 的輸出參數。 此參數不得為 nullptr。
傳回值
傳回 HRESULT 值,包括但不限於下列值:
錯誤碼 | 描述 |
---|---|
S_OK | 成功 |
E_INVALIDARG | 輸入參數無效。 |
E_POINTER | virtualCamera參數為 nullptr。 |
E_ACCESSDENIED | 隱私權控制設定為拒絕存取應用程式、使用者或系統的相機。 或者,呼叫端不是系統管理員,而且所提供的參數只適用于系統管理員存取。 |
備註
MFCreateVirtualCamera所建立的虛擬相機會根據傳入此 API 的參數進行金鑰。 藉由保留相同的參數,應用程式可以重新開啟相同的虛擬相機。 第一次呼叫時,產生的 IMFVirtualCamera 包含一組態資訊,可由呼叫端修改或更新,以建立虛擬相機的新實例。 如果後續呼叫時會針對此函式使用相同的參數,產生的IMFVirtualCamera會在呼叫IMFVirtualCamera::Start 或 IMFVirtualCamera::Stop方法時開啟現有的虛擬相機。 呼叫 IMFVirtualCamera::Remove 將會移除現有的虛擬相機。 如果為 存取 參數指定MFVirtualCameraAccess_CurrentUser,則每個使用者帳戶都會取得唯一的虛擬相機。
UWP 和封裝應用程式必須在其資訊清單中宣告 網路攝影機 裝置功能,才能使用此 API。 此 API 也受限於網路攝影機隱私權控制,因此當隱私權設定為拒絕存取時,此 API 將會導致E_ACCESSDENIED失敗。
注意
UWP 和已封裝的應用程式不得在其 UI 執行緒上叫用 MFCreateVirtualCamera 。 這麼做可能會觸發死結,因為網路攝影機存取同意對話方塊的功能存取管理員檢查將會遭到封鎖。
需求
最低支援的用戶端 | Windows 組建 22000 |
標頭 | mfvirtualcamera.h |
程式庫 | mfsensorgroup.lib |
Dll | mfsensorgroup.dll |
另請參閱
IMFVirtualCameraMFVirtualCameraTypeMFVirtualCameraLifetimeMFVirtualCameraAccess