Udostępnij przez


Zewnętrzne interfejsy urządzeń dla kamer DV

[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));

sterowanie kamery DV