CPullPin.Receive 方法
[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。
當 Receive
物件從輸出釘選收到媒體範例時,會呼叫 方法。 衍生類別必須實作這個方法。
語法
virtual HRESULT Receive(
IMediaSample *pSample
) = 0;
參數
-
pSample
-
媒體範例之 IMediaSample 介面的指標。
傳回值
傳回 HRESULT 值。 傳回S_OK以外的值將會停止資料提取執行緒。
備註
每當新的樣本從輸出針腳抵達時,就會呼叫這個方法。 以與 IMemInputPin::Receive 方法相同的方式撰寫這個方法。
範例上的時間戳記會指定位元組位移,相對於 CPullPin::Seek 方法中指定的原始開始位置。
開始位置會四捨五入至最接近的對齊界限,而停止位置會四捨五入到最接近的對齊界限。 此外,如果停止位置超過總持續時間,則會改用持續時間。
所有時間戳記都會指定為位元組位移乘以 10,000,000,000,定義為常數 UNITS。 因此,概念上一秒是一個位元組。 若要尋找實際的位元組位移,請呼叫 IMediaSample::GetTime ,並將結果除以 UNITS。
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|