Ich arbeite an einer C ++ - UWP -Anwendung mit der Microsoft Media Foundation Library. Meine App zielt darauf ab, eine virtuelle Kamera zu erstellen, die eine Videodatei als Videoquelle verwenden kann.
Code: Select all
winrt::check_hresult(MFCreateVirtualCamera(
MFVirtualCameraType_SoftwareCameraSource,
MFVirtualCameraLifetime_Session,
MFVirtualCameraAccess_CurrentUser,
cameraName,
L"{7B89B92E-FE71-42D0-8A41-E137D06EA184}",
nullptr,
0,
pVirtualCamera.put()
));
Ich erhalte die Fehlermeldung „Klasse nicht registriert“, wenn ich versuche, die oben erstellte virtuelle Kamera zu starten. Ich verstehe, dass es daran liegt, dass die oben genannte CLSID nicht in der Registrierung registriert ist. Also, wie und wo genau in der Registrierung registriere ich meine CLSID?
Zweitens
Ich verstehe, dass es eine IMFMediaSource gibt, die mit der virtuellen Kamera verknüpft ist, die ich finden kann So erhalten Sie:
Code: Select all
winrt::com_ptr pMediaSource;
pVirtualCamera->GetMediaSource(pMediaSource.put());
Wie ersetze ich es also durch eine neue MediaSource, die die Videodatei als eigentliche Quelle verwendet? Bitte erwähnen Sie auch, wenn ich etwas übersehe und es eine ganz andere Möglichkeit gibt, dies zu tun.