Udostępnij przez


Kody powiadomień o zdarzeniach

[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.]

W tych sekcjach wymieniono zdarzenia DirectShow, które nie są specyficzne dla dysku DVD. Aby uzyskać informacje o zdarzeniach specyficznych dla dysku DVD, zobacz kody powiadomień o zdarzeniach DVD.

Filtry wysyłają zdarzenia do Menedżera programu Graph filtru, wywołując metodę IMediaEventSink::Notify. Menedżer filtrów programu Graph obsługuje niektóre zdarzenia i kolejkuje inne dla aplikacji. Aplikacja pobiera je, wywołując metodę IMediaEvent::GetEvent.

W poniższych sekcjach każda pozycja zawiera listę kodu zdarzenia, znaczenie parametrów zdarzenia oraz domyślną akcję Filtruj menedżera programu Graph dla zdarzenia, jeśli istnieje. Aby zastąpić akcję domyślną, wywołaj metodę IMediaEvent::CancelDefaultHandling. Kody zdarzeń są definiowane w plikach nagłówkowych Evcode.h i Audevcod.h. Jeśli nie ma akcji domyślnej, Menedżer filtru programu Graph automatycznie przekazuje zdarzenie do aplikacji (za pośrednictwem kolejki zdarzeń).

zdarzenia niestandardowe

Filtry mogą definiować zdarzenia niestandardowe z kodami zdarzeń w zakresie EC_USER i nowszym. Menedżer filtru programu Graph umieści je bezpośrednio w kolejce zdarzeń. Obowiązują jednak następujące zastrzeżenia:

  • Menedżer programu Filter Graph nie może zwolnić parametrów zdarzeń przy użyciu normalnej metody IMediaEvent::FreeEventParams. Aplikacja musi zwolnić dowolną pamięć lub liczbę odwołań skojarzonych z parametrami zdarzenia.
  • Filtr powinien wysyłać zdarzenie tylko z poziomu aplikacji przygotowanej do obsługi zdarzenia. (Prawdopodobnie aplikacja może ustawić właściwość niestandardową filtru, aby wskazać, że można bezpiecznie wysłać zdarzenie).
Kod powiadomienia o zdarzeniach Opis
EC_ACTIVATE Okno wideo jest aktywowane lub dezaktywowane.
EC_BANDWIDTHCHANGE Nieobsługiwane.
EC_BUFFERING_DATA Wykres buforuje dane lub zatrzymał buforowanie danych.
EC_BUILT Wyślij przez kontrolkę wideo, gdy graf został skompilowany. Nie są przekazywane do aplikacji.
EC_CLOCK_CHANGED Zegar odniesienia zmienił się.
EC_CLOCK_UNSET Dostawca zegara został odłączony.
EC_CODECAPI_EVENT Wysłane przez koder w celu zasygnalizowania zdarzenia kodowania.
EC_COMPLETE Wszystkie dane z określonego strumienia zostały renderowane.
EC_CONTENTPROPERTY_CHANGED Nieobsługiwane.
EC_DEVICE_LOST Urządzenie Plug and Play zostało usunięte lub zostało ponownie udostępnione.
EC_DISPLAY_CHANGED Tryb wyświetlania został zmieniony.
EC_END_OF_SEGMENT Osiągnięto koniec segmentu.
EC_EOS_SOON Nieobsługiwane.
EC_ERROR_STILLPLAYING Nie można uruchomić grafu za pomocą polecenia asynchronicznego.
EC_ERRORABORT Operacja została przerwana z powodu błędu.
EC_ERRORABORTEX Operacja została przerwana z powodu błędu.
EC_EXTDEVICE_MODE_CHANGE Nieobsługiwane.
EC_FILE_CLOSED Plik źródłowy został zamknięty z powodu nieoczekiwanego zdarzenia.
EC_FULLSCREEN_LOST Program renderowania wideo wyłącza tryb pełnoekranowy.
EC_GRAPH_CHANGED Wykres filtru został zmieniony.
EC_LENGTH_CHANGED Długość źródła uległa zmianie.
EC_LOADSTATUS Powiadamia aplikację o postępie podczas otwierania pliku sieciowego.
EC_MARKER_HIT Nieobsługiwane.
EC_NEED_RESTART Filtr żąda ponownego uruchomienia grafu.
EC_NEW_PIN Nieobsługiwane.
EC_NOTIFY_WINDOW Powiadamia filtr okna programu renderowania wideo.
EC_OLE_EVENT Filtr przekazuje ciąg tekstowy do aplikacji.
EC_OPENING_FILE Graf otwiera plik lub kończy otwieranie pliku.
EC_PALETTE_CHANGED Paleta wideo uległa zmianie.
EC_PAUSED Żądanie wstrzymania zostało ukończone.
EC_PLEASE_REOPEN Plik źródłowy został zmieniony.
EC_PREPROCESS_COMPLETE Wysłane przez moduł zapisywania asf WM filtr po zakończeniu przetwarzania wstępnego na potrzeby kodowania multipass.
EC_PROCESSING_LATENCY Wskazuje ilość czasu, przez który składnik przetwarza poszczególne próbki.
EC_QUALITY_CHANGE Wykres upuszcza próbki na potrzeby kontroli jakości.
EC_RENDER_FINISHED Nieobsługiwane.
EC_REPAINT Program renderowany wideo wymaga przemalować.
EC_SAMPLE_LATENCY Określa, jak daleko za harmonogramem jest składnik do przetwarzania przykładów.
EC_SAMPLE_NEEDED Żąda nowego przykładu danych wejściowych z filtru Enhanced Video Renderer (EVR).
EC_SCRUB_TIME Określa sygnaturę czasową ostatniego kroku ramki.
EC_SEGMENT_STARTED Rozpoczęto nowy segment.
EC_SHUTTING_DOWN Wykres filtru jest zamykany przed zniszczeniem.
EC_SNDDEV_IN_ERROR Wystąpił błąd urządzenia w filtrze przechwytywania dźwięku.
EC_SNDDEV_OUT_ERROR Wystąpił błąd urządzenia w filtrze modułu renderowania audio.
EC_STARVATION Filtr nie odbiera wystarczającej ilości danych.
EC_STATE_CHANGE Wykres filtru zmienił stan.
EC_STATUS Zawiera dwa dowolne ciągi stanu.
EC_STEP_COMPLETE Filtr wykonujący kroki ramki przekroczył określoną liczbę ramek.
EC_STREAM_CONTROL_STARTED Uruchomiono polecenie uruchamiania kontrolki strumienia.
EC_STREAM_CONTROL_STOPPED Polecenie zatrzymania sterowania strumieniem zostało zastosowane.
EC_STREAM_ERROR_STILLPLAYING Wystąpił błąd w strumieniu. Strumień jest nadal odtwarzany.
EC_STREAM_ERROR_STOPPED Strumień został zatrzymany z powodu błędu.
EC_TIMECODE_AVAILABLE Nieobsługiwane.
EC_UNBUILT Wyślij przez kontrolkę wideo, gdy wykres został zburzony. Nie są przekazywane do aplikacji.
EC_USERABORT Użytkownik zakończył odtwarzanie.
EC_VIDEO_SIZE_CHANGED Rozmiar natywnego wideo został zmieniony.
EC_VIDEOFRAMEREADY Ramka wideo jest gotowa do wyświetlenia.
EC_VMR_RECONNECTION_FAILED Wysłane przez maszynę wirtualną VMR-7 i VMR-9, gdy nie można było zaakceptować żądania zmiany formatu dynamicznego z nadrzędnego dekodera.
EC_VMR_RENDERDEVICE_SET Wysłane, gdy maszyna wirtualna wybrała mechanizm renderowania.
EC_VMR_SURFACE_FLIPPED Wysłane, gdy prezenter alokatora VMR-7 nazwał metodę DirectDraw Flip na prezentowanej powierzchni.
EC_WINDOW_DESTROYED Renderator wideo został zniszczony lub usunięty z grafu.
EC_WMT_EVENT Wysłane przez filtr czytnika ASF WM podczas odczytywania plików ASF chronionych przez zarządzanie prawami cyfrowymi (DRM).
EC_WMT_INDEX_EVENT Wysyłane, gdy aplikacja używa składnika zapisywania ASF WM do indeksowania plików wideo w usłudze Windows Media.

 

stałe i identyfikatory GUID

powiadomienie o zdarzeniu w DirectShow