Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
[Funkcja skojarzona z tą stroną, DirectShow, jest starszą funkcją. Został zastąpiony przez MediaPlayer, IMFMediaEnginei Audio/Video Capture w Media Foundation. Te funkcje zostały zoptymalizowane pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał MediaPlayer, IMFMediaEngine i Audio/Video Capture w programie Media Foundation zamiast DirectShow, jeśli to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]
Filtr WDM Video Capture uwidacznia trzy interfejsy do sterowania kamerą.
| Etykieta | Wartość |
|---|---|
| IAMExtDevice | Podstawowy interfejs kontroli urządzeń zewnętrznych. |
| IAMExtTransport | Steruje funkcjami VCR. |
| IAMTimecodeReader | Odczytuje kod czasu z urządzenia. |
Nuta
Aby użyć tych interfejsów ze sterownikiem kamery MSDV, dołącz plik nagłówka XPrtDefs.h w projekcie.
Po wybraniu urządzenia przechwytywania i utworzeniu wystąpienia filtru przechwytywania wykonaj zapytanie dotyczące filtru dla tych interfejsów. W poniższym przykładzie zadeklarowana jest struktura niestandardowa zawierająca wskaźniki interfejsu wraz z wartościami logicznymi określającymi dostępność każdego interfejsu:
struct _MyDevCap
{
IAMExtDevice *pDevice;
IAMExtTransport *pTransport;
IAMTimecodeReader *pTimecode;
BOOL bHasDevice;
BOOL bHasTransport;
BOOL bHasTimecode;
} MyDevCap;
HRESULT hr;
IBaseFilter *pDVCam; // Pointer to the capture filter.
// Create an instance of the capture filter (not shown).
hr = pDVCam->QueryInterface(IID_IAMExtDevice, (void **)&MyDevCap.pDevice);
MyDevCap.bHasDevice = (SUCCEEDED(hr));
hr = pDVCam->QueryInterface(IID_IAMExtTransport, (void **)&MyDevCap.pTransport);
MyDevCap.bHasTransport = (SUCCEEDED(hr));
hr = pDVCam->QueryInterface(IID_IAMTimecodeReader, (void **)&MyDevCap.pTimecode);
MyDevCap.bHasTimecode = (SUCCEEDED(hr));
Tematy pokrewne
-
sterowanie kamery DV