Fungsi MFCreateVirtualCamera (mfvirtualcamera.h)

Membuat objek kamera virtual yang dapat digunakan oleh pemanggil untuk mendaftar, membatalkan pendaftaran, atau melepas kamera virtual dari sistem.

Sintaks

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

Parameter

type

Anggota enumerasi MFVirtualCameraType yang menentukan jenis kamera virtual. Dalam rilis saat ini, hanya MFVirtualCameraType_SoftwareCameraSource yang didukung.

lifetime

Anggota enumerasi MFVirtualCameraLifetime yang menentukan masa pakai kamera. Jika MFVirtualCameraLifetime_Session ditentukan, ketika objek IMFVirtualCamera yang dikembalikan dibuang atau IMFVirtualCamera::Shutdown dipanggil, kamera virtual tidak akan lagi dapat dijumlahkan atau diaktifkan pada perangkat. Jika Anda ingin kamera virtual bertahan di seluruh sesi dan/atau di seluruh reboot, Anda harus menentukan nilai MFVirtualCameraLifetime_System.

access

Anggota enumerasi MFVirtualCameraAccess yang menentukan cakupan akses kamera virtual yang dibuat. Jika MFVirtualCameraAccess_CurrentUser ditentukan, kamera virtual hanya dibuat untuk akun pengguna yang disebut MFCreateVirtualCamera. Jika MFVirtualCameraAccess_AllUsers ditentukan, semua pengguna di perangkat akan dapat menghitung atau mengaktifkan kamera virtual. Untuk membuat kamera virtual dengan MFVirtualCameraAccess_AllUsers, pemanggil MFCreateVirtualCamera harus memiliki izin administrator.

friendlyName

Nama ramah untai Unicode yang dapat dibaca pengguna dengan null untuk kamera virtual yang dibuat. Alur akan secara otomatis menambahkan "Windows Virtual Camera" ke nama ramah yang disediakan untuk memastikan pengguna akhir dapat membedakan kamera virtual dari kamera fisik berdasarkan nama yang mudah diingat. Parameter ini tidak boleh nullptr.

sourceId

CLSID unik dari sumber media kustom yang akan diaktifkan untuk kamera virtual ini. String harus dalam format "{CLSID}". Parameter ini tidak boleh nullptr.

categories

Daftar opsional kategori antarmuka perangkat tempat kamera virtual terdaftar. Jika pengguna non-administrator memanggil MFCreateVirtualCamera, kategori harus merupakan subset dari nilai berikut:

Jika nullptr ditentukan, kamera virtual terdaftar di bawah kategori KSCATEGORY_VIDEO_CAMERA, KSCATEGORY_VIDEO, dan KSCATEGORY_CAPTURE.

categoryCount

Jumlah kategori yang disediakan dalam parameter kategori . Jika kategori adalah nullptr, categoryCount harus 0.

virtualCamera

Parameter output yang menerima IMFVirtualCamera yang baru dibuat. Parameter ini tidak boleh nullptr.

Menampilkan nilai

Mengembalikan nilai HRESULT, termasuk tetapi tidak terbatas pada nilai berikut:

Kode kesalahan Deskripsi
S_OK Berhasil
E_INVALIDARG Parameter input tidak valid.
E_POINTER Parameter virtualCamera adalah nullptr.
E_ACCESSDENIED Kontrol privasi diatur untuk menolak akses ke kamera untuk aplikasi, pengguna, atau sistem. Atau penelepon bukan administrator dan parameter yang disediakan hanya valid untuk akses administrator.

Keterangan

Kamera virtual yang dibuat oleh MFCreateVirtualCamera dikunci dari parameter yang diteruskan ke API ini. Dengan menjaga parameter yang sama, aplikasi dapat membuka kembali kamera virtual yang sama. Ketika dipanggil untuk pertama kalinya, IMFVirtualCamera yang dihasilkan berisi sekumpulan informasi konfigurasi yang dapat dimodifikasi atau diperbarui oleh pemanggil untuk membuat instans baru kamera virtual. Jika parameter yang sama digunakan untuk fungsi ini pada panggilan berikutnya, metode IMFVirtualCamera yang dihasilkan akan membuka kamera virtual yang ada ketika metode IMFVirtualCamera::Start atau IMFVirtualCamera::Stop dipanggil. Memanggil IMFVirtualCamera::Remove akan menghapus kamera virtual yang ada. Jika MFVirtualCameraAccess_CurrentUser ditentukan untuk parameter akses , setiap akun pengguna mendapatkan kamera virtual yang unik.

UWP dan Aplikasi Paket harus mendeklarasikan kemampuan perangkat webcam dalam manifesnya untuk menggunakan API ini. API ini juga tunduk pada kontrol privasi webcam sehingga ketika privasi diatur untuk menolak akses, API ini akan mengakibatkan kegagalan E_ACCESSDENIED.

Catatan

UWP dan Aplikasi Paket tidak boleh memanggil MFCreateVirtualCamera pada utas UI mereka. Melakukannya akan berpotensi memicu kebuntuan karena Pemeriksaan Manajer Akses Kemampuan untuk dialog persetujuan akses webcam akan diblokir.

Persyaratan

   
Klien minimum yang didukung Windows Build 22000
Header mfvirtualcamera.h
Pustaka mfsensorgroup.lib
DLL mfsensorgroup.dll

Lihat juga

IMFVirtualCameraMFVirtualCameraTypeMFVirtualCameraLifetimeMFVirtualCameraAccess