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.]
Program Microsoft® DirectShow® obsługuje wyszukiwanie za pośrednictwem interfejsu IMediaSeeking. Menedżer grafu filtrów uwidacznia ten interfejs, ale funkcja wyszukiwania jest zawsze implementowana przez filtry w grafie.
Nie można wyszukać niektórych danych. Na przykład nie można wyszukiwać strumienia wideo na żywo z kamery. Jeśli jednak strumień da się przeszukiwać, istnieją różne rodzaje przeszukiwania, które mogą być obsługiwane. Należą do nich:
- Szukanie dowolnego położenia w strumieniu.
- Uzyskiwanie czasu trwania strumienia.
- Pobieranie bieżącego położenia w strumieniu.
- Gra w odwrotnie.
Interfejs IMediaSeeking definiuje zestaw flag, AM_SEEKING_SEEKING_CAPABILITIES, które opisują możliwe możliwości wyszukiwania. Aby pobrać możliwości strumienia, wywołaj metodę IMediaSeeking::GetCapabilities. Metoda zwraca bitową kombinację flag. Aplikacja może je przetestować przy użyciu operatora & (operator bitowy AND). Na przykład poniższy kod sprawdza, czy wykres może szukać dowolnego położenia:
DWORD dwCap = 0;
HRESULT hr = pSeek->GetCapabilities(&dwCap);
if (AM_SEEKING_CanSeekAbsolute & dwCap)
{
// Graph can seek to absolute positions.
}