ISampleGrabber::SetOneShot 方法
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
注意
[已被取代。 此 API 可能會從未來的 Windows 版本中移除。]
SetOneShot方法會指定範例擷取器篩選準則是否在篩選收到樣本之後停止。
語法
HRESULT SetOneShot(
BOOL OneShot
);
參數
-
OneShot
-
布林值,指定樣本擷取器篩選是否在接收樣本之後停止。
值 意義 - 真
範例擷取器在第一個樣本之後停止。 - 假
在第一個範例之後,範例擷取器會繼續處理樣本。 這是預設行為。
傳回值
如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。
備註
使用此方法從資料流程取得單一範例,如下所示:
- 使用TRUE 值呼叫SetOneShot。
- 或者,使用 IMediaSeeking 介面來搜尋資料流程中的位置。
- 呼叫 IMediaControl::Run 以執行篩選圖形。
- 呼叫 IMediaEvent::WaitForCompletion 以等候圖形停止。 或者,呼叫 IMediaEvent::GetEvent 以取得圖形事件,直到您收到 EC_COMPLETE 事件為止。
在範例擷取器停止之後,篩選圖表仍處於執行中狀態。 您可以搜尋或暫停圖形,以取得另一個範例。
注意
舊版的檔指出,篩選圖形在收到樣本之後停止。 這不正確。 資料流程結束,但圖形仍處於執行中狀態。
範例擷取器會在下游篩選上呼叫 IPin::EndOfStream ,並從它的 IMemInputPin::Receive 方法傳回S_FALSE,以實作單次模式。
注意
標頭檔 Qedit.h 與 7 版之後的 Direct3D 標頭不相容。
注意
若要取得 Qedit.h,請下載適用于 Windows Vista 的 Microsoft Windows SDK Update 和 .NET Framework 3.0。 Windows 7 和 .NET Framework 3.5 Service Pack 1 Microsoft Windows SDK中無法使用 Qedit.h。
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|
另請參閱