共用方式為


IMFSourceReader::ReadSample 方法 (mfreadwrite.h)

從媒體來源讀取下一個範例。

語法

HRESULT ReadSample(
  [in]  DWORD     dwStreamIndex,
  [in]  DWORD     dwControlFlags,
  [out] DWORD     *pdwActualStreamIndex,
  [out] DWORD     *pdwStreamFlags,
  [out] LONGLONG  *pllTimestamp,
  [out] IMFSample **ppSample
);

參數

[in] dwStreamIndex

要從中提取數據的數據流。 此值可以是下列任一項。

意義
0–0xFFFFFFFB
數據流以零起始的索引。
MF_SOURCE_READER_FIRST_VIDEO_STREAM
0xFFFFFFFC
第一個視訊串流。
MF_SOURCE_READER_FIRST_AUDIO_STREAM
0xFFFFFFFD
第一個音訊數據流。
MF_SOURCE_READER_ANY_STREAM
0xFFFFFFFE
取得下一個可用的範例,不論數據流為何。

[in] dwControlFlags

MF_SOURCE_READER_CONTROL_FLAG列舉中零個或多個旗標的位 OR

[out] pdwActualStreamIndex

接收以零起始的數據流索引。

[out] pdwStreamFlags

MF_SOURCE_READER_FLAG列舉接收零個或多個旗標的位 OR

[out] pllTimestamp

接收範例的時間戳,或 pdwStreamFlags 中所指出數據流事件的時間。 時間是以 100 奈秒為單位來指定。

[out] ppSample

接收 IMFSample 介面的指標或 NULL 值, (請參閱) 。 如果此參數收到非 NULL 指標,則呼叫端必須釋放介面。

傳回值

方法會傳回 HRESULT。 可能的值包括 (但不限於) 下表中的這些值。

傳回碼 Description
S_OK
此方法已成功。
MF_E_INVALIDREQUEST
無效的要求
MF_E_INVALIDSTREAMNUMBER
dwStreamIndex 參數無效。
MF_E_NOTACCEPTING
排清作業擱置中。 請參閱 IMFSourceReader::Flush
E_INVALIDARG
無效引數。 請參閱<備註>。

備註

如果未選取要求的數據流,傳回碼 會MF_E_INVALIDREQUEST。 請參閱 IMFSourceReader::SetStreamSelection

這個方法可以同步或異步完成。 如果您在建立來源讀取器時提供回呼指標,則方法為異步。 否則,此方法是同步的。 如需設定回呼指標的詳細資訊,請參閱 MF_SOURCE_READER_ASYNC_CALLBACK

異步模式

在異步模式中:

同步模式

同步模式中:
  • pdwStreamFlagsppSample 參數不能是 NULL。 否則,方法會傳回 E_POINTER
  • pdwActualStreamIndexpllTimestamp 參數可以是 NULL
  • 方法會封鎖直到下一個範例可用為止。
在同步模式中,如果 dwStreamIndex 參數是MF_SOURCE_READER_ANY_STREAM,您應該為 pdwActualStreamIndex 傳遞非 NULL 值,以便您知道傳遞範例的數據流。

這個方法可以在 pdwStreamFlags 參數中傳回旗標,而不傳回 ppSample 中的媒體範例。 因此,即使方法成功, ppSample 參數仍可接收 NULL 指標。 例如,當來源讀取器到達數據流結尾時,它會傳回 pdwStreamFlags 中的MF_SOURCE_READERF_ENDOFSTREAM旗標,並將 ppSample 設定為 NULL

如果數據流中有間距,pdwStreamFlags 會收到MF_SOURCE_READERF_STREAMTICK旗標,ppSampleNULL,pllTimestamp 表示發生間距的時間。

如果已安裝適用於 Windows Vista 的平臺更新補充,此介面可在 Windows Vista 上使用。

規格需求

需求
最低支援的用戶端 適用於 Windows Vista 的 Windows 7、Windows Vista 和平臺更新補充 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 mfreadwrite.h

另請參閱

IMFSourceReader

來源讀取器