IAsyncReader::WaitForNext 方法 (strmif.h)

[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 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
VFW_E_TIMEOUT
逾時已過期,或針腳已排清。
VFW_E_WRONG_STATE
針腳正在排清。
E_FAIL
發生讀取錯誤。
S_OK
成功。
S_FALSE
已到達檔案結尾;擷取的位元組少於要求的位元組。

備註

如果方法成功, 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

另請參閱

錯誤和成功碼

IAsyncReader 介面