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.]
[Ten interfejs API nie jest obsługiwany i może zostać zmieniony lub niedostępny w przyszłości.]
Detektor multimediów jest obiektem pomocnika, który może pobierać informacje o pliku, takie jak liczba strumieni, ich typ i czas trwania. Zawiera również metody pobierania ramek plakatów ze strumienia wideo. Uwidacznia interfejs IMediaDet.
Wykrywacz multimediów działa w jednym z dwóch trybów. Podczas tworzenia instancji detektora mediów nie jest ona przypisana do konkretnego pliku źródłowego. W tym trybie można pobrać informacje o strumieniu z wielu plików źródłowych. Jednak gdy używasz detektora multimediów do uzyskania ramki plakatu, przełącza się na tryb pobierania map bitowych. W trybie chwytania mapy bitowej wykrywacz multimediów jest dołączony do określonego strumienia wideo, a metody informacji o strumieniu nie działają już. Co więcej, nie ma możliwości przełączenia detektora multimediów z powrotem do trybu uruchamiania. W związku z tym uzyskaj wszelkie potrzebne informacje o strumieniu przed pobraniem klatek plakatu lub utwórz nowe wystąpienia detektora multimediów dla każdego strumienia.
Aby uzyskać informacje o strumieniu, wykonaj następujące czynności:
- Wywołaj IMediaDet::put_Filename z nazwą pliku źródłowego.
- Wywołaj IMediaDet::get_OutputStreams, aby uzyskać liczbę strumieni w źródle.
- Określ numer strumienia za pomocą IMediaDet::put_CurrentStream. Następnie wywołaj co najmniej jedną z następujących metod:
- IMediaDet::get_StreamType: pobiera typ nośnika strumienia.
- IMediaDet::get_StreamLength: pobiera czas trwania strumienia.
- IMediaDet::get_FrameRate: pobiera szybkość klatek strumienia wideo.
Aby uzyskać ramkę plakatu, określ numer strumienia, jak w poprzednim kroku. Następnie wywołaj IMediaDet::GetBitmapBits, która kopiuje ramkę plakatu do buforu lub IMediaDet::WriteBitmapBits, co zapisuje ramkę plakatu w pliku.
Tematy pokrewne