事件通知代碼
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
本節列出不專屬於 DVD 的 DirectShow 事件。 如需 DVD 特有的事件,請參閱 DVD 事件通知代碼。
篩選會藉由呼叫 IMediaEventSink::Notify 方法,將事件傳送至 Filter Graph 管理員。 Filter Graph 管理員會處理某些事件,並將其他事件排入應用程式佇列。 應用程式會藉由呼叫 IMediaEvent::GetEvent 方法來擷取它們。
在下列各節中,每個專案都會列出事件程式碼、事件參數的意義,以及如果有的話,篩選圖形管理員的預設動作。 若要覆寫預設動作,請呼叫 IMediaEvent::CancelDefaultHandling。 事件代碼定義于標頭檔 Evcode.h 和 Audevcod.h 中。 如果沒有預設動作,Filter Graph 管理員會自動透過事件佇列) 將事件轉送至應用程式 (。
自訂事件
篩選準則可以使用範圍中的事件代碼定義自訂事件EC_USER和更新版本。 Filter Graph 管理員會將這些專案直接放在事件佇列中。 不過,適用下列注意事項:
- Filter Graph 管理員無法使用一般的 IMediaEvent::FreeEventParams 方法釋放事件參數。 應用程式必須釋放與事件參數相關聯的任何記憶體或參考計數。
- 篩選應該只從準備好處理事件的應用程式內傳送事件。 (可能應用程式可以在篩選上設定自訂屬性,以指出可以安全地傳送 event.)
事件通知程式碼 | Description |
---|---|
EC_ACTI加值稅E | 正在啟動或停用視訊視窗。 |
EC_BANDWIDTHCHANGE | 不支援。 |
EC_BUFFERING_DATA | 圖形正在緩衝處理資料,或已停止緩衝處理資料。 |
EC_BUILT | 建置圖形時,影片控制項會傳送。 未轉送至應用程式。 |
EC_CLOCK_CHANGED | 參考時鐘已變更。 |
EC_CLOCK_UNSET | 時鐘提供者已中斷連線。 |
EC_CODECAPI_EVENT | 編碼器傳送來發出編碼事件的訊號。 |
EC_COMPLETE | 已轉譯來自特定資料流程的所有資料。 |
EC_CONTENTPROPERTY_CHANGED | 不支援。 |
EC_DEVICE_LOST | 已移除隨插即用裝置,或已再次可供使用。 |
EC_DISPLAY_CHANGED | 顯示模式已變更。 |
EC_END_OF_SEGMENT | 已到達區段的結尾。 |
EC_EOS_SOON | 不支援。 |
EC_ERROR_STILLPLAYING | 執行圖形的非同步命令失敗。 |
EC_ERRORABORT | 作業因為發生錯誤而中止。 |
EC_ERRORABORTEX | 作業因為發生錯誤而中止。 |
EC_EXTDEVICE_MODE_CHANGE | 不支援。 |
EC_FILE_CLOSED | 來源檔案因為未預期的事件而關閉。 |
EC_FULLSCREEN_LOST | 視訊轉譯器正在切換出全螢幕模式。 |
EC_GRAPH_CHANGED | 篩選圖表已變更。 |
EC_LENGTH_CHANGED | 來源的長度已變更。 |
EC_LOADSTATUS | 開啟網路檔案時通知應用程式進度。 |
EC_MARKER_HIT | 不支援。 |
EC_NEED_RESTART | 篩選準則要求重新開機圖形。 |
EC_NEW_PIN | 不支援。 |
EC_NOTIFY_WINDOW | 通知視訊轉譯器的視窗篩選。 |
EC_OLE_EVENT | 篩選準則正在將文字字串傳遞至應用程式。 |
EC_OPENING_FILE | 圖形正在開啟檔案,或已完成開啟檔案。 |
EC_PALETTE_CHANGED | 視訊調色盤已變更。 |
EC_PAUSED | 暫停要求已完成。 |
EC_PLEASE_REOPEN | 來源檔案已變更。 |
EC_PREPROCESS_COMPLETE | 當 WM ASF 寫入器篩選完成多重密碼編碼的前置處理時,由 WM ASF 寫入器篩選傳送。 |
EC_PROCESSING_LATENCY | 指出元件處理每個樣本所花費的時間量。 |
EC_QUALITY_CHANGE | 圖形正在卸載樣本以進行品質保證。 |
EC_RENDER_FINISHED | 不支援。 |
EC_REPAINT | 視訊轉譯器需要重繪。 |
EC_SAMPLE_LATENCY | 指定元件在排程後多遠的時間,以便處理範例。 |
EC_SAMPLE_NEEDED | 從增強式視訊轉譯器 (EVR) 篩選要求新的輸入範例。 |
EC_SCRUB_TIME | 指定最近框架步驟的時間戳記。 |
EC_SEGMENT_STARTED | 已啟動新的區段。 |
EC_SHUTTING_DOWN | 篩選圖表會在終結之前關閉。 |
EC_SNDDEV_IN_ERROR | 音訊擷取篩選器中發生裝置錯誤。 |
EC_SNDDEV_OUT_ERROR | 音訊轉譯器篩選中發生裝置錯誤。 |
EC_STAR加值稅ION | 篩選準則未收到足夠的資料。 |
EC_STATE_CHANGE | 篩選圖表已變更狀態。 |
EC_STATUS | 包含兩個任意狀態字串。 |
EC_STEP_COMPLETE | 執行畫面逐步執行的篩選準則已逐步執行指定的畫面數。 |
EC_STREAM_CONTROL_STARTED | 資料流程控制啟動命令已生效。 |
EC_STREAM_CONTROL_STOPPED | 資料流程控制停止命令已生效。 |
EC_STREAM_ERROR_STILLPLAYING | 資料流程中發生錯誤。 資料流程仍在播放中。 |
EC_STREAM_ERROR_STOPPED | 資料流程因為發生錯誤而停止。 |
EC_TIMECODE_AVAILABLE | 不支援。 |
EC_UNBUILT | 當圖表已損毀時,視訊控制項傳送。 未轉送至應用程式。 |
EC_USERABORT | 使用者已終止播放。 |
EC_VIDEO_SIZE_CHANGED | 原生視訊大小已變更。 |
EC_VIDEOFRAMEREADY | 視訊畫面已準備好顯示。 |
EC_VMR_RECONNECTION_FAILED | 當 VMR-7 和 VMR-9 無法接受上游解碼器中的動態格式變更要求時,由 VMR-7 和 VMR-9 傳送。 |
EC_VMR_RENDERDEVICE_SET | 當 VMR 已選取其轉譯機制時傳送。 |
EC_VMR_SURFACE_FLIPPED | 當 VMR-7 的配置器簡報者在呈現的介面上呼叫 DirectDraw Flip 方法時傳送。 |
EC_WINDOW_DESTROYED | 影片轉譯器已從圖形終結或移除。 |
EC_WMT_EVENT | WM ASF 讀取器篩選器在讀取受數位版權管理保護的 ASF 檔案時傳送, (DRM) 。 |
EC_WMT_INDEX_EVENT | 當應用程式使用 WM ASF 寫入器來編制 Windows 媒體視訊檔案的索引時傳送。 |
相關主題