(strmif.h) 的 IMediaSample 介面
[與此頁面相關的功能 DirectShow 是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft 強烈建議新程式代碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 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) |