Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Konfiguruje zdroj zařízení fotoaparátu reprezentovaný instancí MMFMEdiaSource být v režimu řízení nebo režimu sdílení.
Datový typ
UINT32
Získání nebo nastavení
Chcete-li získat tento atribut, zavolejte MMFAttributes::GetUINT32.
Chcete-li nastavit tento atribut, volání MMFAttributes::SetUINT32.
Poznámky
Pokud tento atribut není nastaven nebo nastaven na hodnotu 0, zdroj zařízení fotoaparátu je nakonfigurován v řídicím režimu. Toto je výchozí režim pro zdroje fotoaparátu. Při řízení režimu jsou k dispozici všechny operace fotoaparátu a aplikace může měnit typy médií nebo rozšířené ovládací prvky kamery.
Kdykoli může být aktivní pouze jedna instance režimu MMFMediaSource. MMFMediaSource se po vytvoření inicializovaného objektu nepovažuje za aktivní. Zdroj médií se aktivuje pouze po spuštění datového proudu s voláním MMFMediaSource::Start, nebo po nastavení hodnoty ovládacího prvku kamery vydáním ovládacího prvku kamery voláním IKsControl::KsProperty s nastavenou vlastností KSPROPERTYSETID_ExtendedCameraControl nebo pomocí MMFExtendedCameraControl rozhraní. Informace o získání instance MMFExtendedCameraControlnaleznete v tématu MMFExtendedCameraController
Pokus o vykreslení aktivní instance MMFMediaSource, pokud je již aktivní jiná instance řídicího režimu, způsobí porušení sdílení.
Kdykoli může existovat libovolný počet instancí aktivního režimu sdílení MMFMediaSource a nově vytvořené instance režimu sdílení lze aktivovat, když je aktivní řídicí instance režimu. Instance režimu sdílení nemůžou měnit typy médií a musí používat aktuální typ média, který se používá. Instance režimu sdílení nemůžou měnit KSPROPERTYSETID_ExtendedCameraControl ovládací prvky. Starší ovládací prvky fotoaparátu, jako jsou PROPSETID_VIDCAP_CAMERACONTROL a PROPSETID_VIDCAP_VIDEOPROCAMP a ovládací prvky specifické pro OEM/IHV, je možné změnit instancemi režimu sdílení.
Chcete-li nakonfigurovat zdroj fotoaparátu tak, aby byl v režimu sdílení, musí být atribut nastaven v době VYTVOŘENÍ MMFMediaSource.
Konfigurace režimu sdílení pomocí MFCreateDeviceSource
Následující příklad kódu znázorňuje vytvoření instance v režimu sdílení pomocí MFCreateDeviceSource.
HRESULT
SampleCreateSharedModeCamera(
_In_z_ LPCWSTR cameraSymbolicName,
_COM_Outptr_ IMFMediaSource** cameraSource
)
{
wil::com_ptr_nothrow<IMFAttributes> initAttributes;
RETURN_HR_IF_NULL (E_INVALIDARG, cameraSymbolicName);
RETURN_HR_IF_NULL (E_POINTER, cameraSource);
*cameraSource = nullptr;
RETURN_IF_FAILED (MFCreateAttributes(&initAttributes, 3));
RETURN_IF_FAILED (initAttributes->SetGUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE, MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID));
RETURN_IF_FAILED (initAttributes->SetString(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK, cameraSymbolicName));
RETURN_IF_FAILED (initAttributes->SetUINT32(MF_DEVSOURCE_ATTRIBUTE_FRAMESERVER_SHARE_MODE, 1));
RETURN_IF_FAILED (MFCreateDeviceSource(initAttributes.get(), cameraSource));
return S_OK;
}
Konfigurace režimu sdílení pomocí FUNKCE MMFActivate
Následující příklad znázorňuje vytvoření instance MMFMediaSource pomocí MMFActivate. Všimněte si, že objekt MMFActivate interně uloží do mezipaměti nově vytvořený MMFMediaSource z volání ActivateObject. Takže pokud ActivateObject je volána znovu před voláním DetachObject, vrátí se instance uložená v mezipaměti a všechny změny atributů budou ignorovány.
HRESULT
SampleCreateSharedModeCameraFromActivate(
_In_ IMFActivate* activate,
_COM_Outptr_ IMFMediaSource** cameraSource
)
{
RETURN_HR_IF_NULL (E_INVALIDARG, activate);
RETURN_HR_IF_NULL (E_POINTER, cameraSource);
*cameraSource = nullptr;
RETURN_IF_FAILED (activate->SetUINT32(MF_DEVSOURCE_ATTRIBUTE_FRAMESERVER_SHARE_MODE, 1));
RETURN_IF_FAILED (activate->ActivateObject(IID_PPV_ARGS(cameraSource)));
return S_OK;
}
Konfiguracerežimuho
Chcete-li aktivovat MMFMediaSource v režimu sdílení pomocí MMFCaptureEngine, MMFActivate předán pro zdroj fotoaparátu musí mít atribut MF_DEVSOURCE_ATTRIBUTE_FRAMESERVER_SHARE_MODE. Jak je uvedeno výše, po MMFActivate::ActivateObject je volána, DetachObject musí být volána, aby se změny atributů projevily v aktivovaném objektu.
Konfigurace režimu sdílení pomocí MediaCapture
Při přístupu ke kameře pomocí třídy MediaCapture nastavte režim sdílení pomocí vlastnosti MediaCaptureInitializationSettings.SharingMode.
Požadavky
| Požadavek | Hodnota |
|---|---|
| Minimální podporovaný klient |
Windows 11, build 26100 |
| Minimální podporovaný server |
Windows Server |
| Záhlaví |
|
Viz také