(strmif.h) 的 IMediaSample 介面

[與此頁面相關的功能 DirectShow 是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft 強烈建議新程式代碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式代碼盡可能重寫為使用新的 API。

介面 IMediaSample 會設定和擷取媒體範例上的屬性。 媒體範例是包含媒體數據區塊的 COM 物件。 媒體範例支援在篩選之間使用共用記憶體緩衝區。

一般而言,應用程式不會在此介面上呼叫方法。 篩選會使用此介面來設定範例的屬性,並將範例傳遞至下游篩選。 下游篩選條件會使用 介面來擷取屬性並讀取數據。 篩選條件可以就地修改數據,也可以複製範例、修改複本,以及傳遞下游複製。

IMediaSample2 介面繼承此介面。

繼承

IMediaSample 介面繼承自 IUnknown 介面。 IMediaSample 也有下列類型的成員:

方法

IMediaSample 介面具有這些方法。

 
IMediaSample::GetActualDataLength

GetActualDataLength 方法會擷取緩衝區中有效數據的長度。
IMediaSample::GetMediaTime

GetMediaTime 方法會擷取此範例的媒體時間。
IMediaSample::GetMediaType

如果媒體類型與先前的範例不同,GetMediaType 方法會擷取媒體類型。
IMediaSample::GetPointer

GetPointer 方法會擷取媒體範例緩衝區的讀取/寫入指標。
IMediaSample::GetSize

GetSize 方法會擷取緩衝區的大小。
IMediaSample::GetTime

GetTime 方法會擷取此範例應該開始和完成的數據流時間。
IMediaSample::IsDiscontinuity

IsDiscontinuity 方法會判斷這個範例是否代表數據流中的中斷。
IMediaSample::IsPreroll

IsPreroll 方法會判斷此範例是否為預先註冊範例。 不應該顯示預先註冊範例。
IMediaSample::IsSyncPoint

IsSyncPoint 方法會判斷這個範例的開頭是否為同步處理點。
IMediaSample::SetActualDataLength

SetActualDataLength 方法會設定緩衝區中有效數據的長度。
IMediaSample::SetDiscontinuity

SetDiscontinuity 方法會指定這個範例是否代表數據流中的中斷。
IMediaSample::SetMediaTime

SetMediaTime 方法會設定這個範例的媒體時間。
IMediaSample::SetMediaType

SetMediaType 方法會設定範例的媒體類型。
IMediaSample::SetPreroll

SetPreroll 方法會指定這個範例是否為預先註冊範例。
IMediaSample::SetSyncPoint

SetSyncPoint 方法會指定這個範例的開頭是否為同步處理點。
IMediaSample::SetTime

SetTime 方法會設定此範例應該開始和完成的數據流時間。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 strmif.h (包含 Dshow.h)