IAsyncReader::WaitForNext 方法 (strmif.h)
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
方法 WaitForNext
會等候下一個擱置的讀取要求完成。
語法
HRESULT WaitForNext(
[in] DWORD dwTimeout,
[out] IMediaSample **ppSample,
[out] DWORD_PTR *pdwUser
);
參數
[in] dwTimeout
指定以毫秒為單位的逾時。 使用 INFINITE 值無限期等候
[out] ppSample
接收 IMediaSample 介面指標的變數位址。
[out] pdwUser
接收IAsyncReader::Request方法中所指定dwUser參數值的變數指標。
傳回值
傳回 HRESULT 值。 可能的值如下。
傳回碼 | Description |
---|---|
|
逾時已過期,或針腳已排清。 |
|
針腳正在排清。 |
|
發生讀取錯誤。 |
|
成功。 |
|
已到達檔案結尾;擷取的位元組少於要求的位元組。 |
備註
如果方法成功, ppSample 參數會包含媒體範例的指標,其緩衝區會保存要求的資料。 呼叫 IMediaSample::GetTime 方法,並將結果除以 10,000,000,以判斷開始和停止位元組。 範例可能會依序傳回。 當您完成處理資料時,請釋放範例。
如果針腳已排清,方法就會失敗。 不過,它可能會在 ppSample中傳回空的範例。 如果 *ppSample 不是Null,請釋放範例並捨棄它。 如需詳細資訊,請參閱 IAsyncReader::BeginFlush。
如果發生讀取錯誤,來源篩選會將錯誤事件傳送至 Filter Graph 管理員;呼叫端不需要發出錯誤訊號。
規格需求
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | strmif.h (包含 Dshow.h) |
程式庫 | Strmiids.lib |