IMFSample 介面 (mfobjects.h)
表示媒體範例,這是媒體數據的容器物件。 針對影片,範例通常會包含一個視訊畫面。 對於音訊數據,範例通常會包含多個音訊樣本,而不是單一音訊樣本。
媒體範例包含零個或多個緩衝區。 每個緩衝區都會管理記憶體區塊,並由 IMFMediaBuffer 介面表示。 範例可以有多個緩衝區。 緩衝區會保留在已排序的清單中,並依索引值存取。 它也適用於沒有緩衝區的空樣本。
繼承
IMFSample 介面繼承自 IMFAttributes。 IMFSample 也有下列類型的成員:
方法
IMFSample 介面具有這些方法。
IMFSample::AddBuffer 將緩衝區加入至範例中緩衝區清單的結尾。 |
IMFSample::ConvertToContiguousBuffer 將具有多個緩衝區的範例轉換成具有單一緩衝區的範例。 |
IMFSample::CopyToBuffer 將範例數據複製到緩衝區。 這個方法會依序串連範例所有緩衝區的有效數據。 |
IMFSample::GetBufferByIndex 依索引從範例取得緩衝區。 |
IMFSample::GetBufferCount 擷取範例中的緩衝區數目。 |
IMFSample::GetSampleDuration 擷取範例的持續時間。 |
IMFSample::GetSampleFlags 擷取與範例相關聯的旗標。目前未定義旗標。 |
IMFSample::GetSampleTime 擷取範例的呈現時間。 |
IMFSample::GetTotalLength 擷取範例中所有緩衝區中有效數據的總長度。 長度會計算為IMFMediaBuffer::GetCurrentLength方法所擷取的值總和。 |
IMFSample::RemoveAllBuffers 從範例中移除所有緩衝區。 |
IMFSample::RemoveBufferByIndex 從範例中移除位於指定索引處的緩衝區。 |
IMFSample::SetSampleDuration 設定範例的持續時間。 |
IMFSample::SetSampleFlags 設定與範例相關聯的旗標。目前未定義旗標。 |
IMFSample::SetSampleTime 設定範例的呈現時間。 |
備註
若要建立新的媒體範例,請呼叫 MFCreateSample。
注意
當您在 IMFSample 上呼叫 CopyAllItems,繼承自 IMFAttributes 介面時,範例時間、持續時間和旗標不會複製到目的地範例。 您必須手動將這些值複製到新的範例。
- Windows XP with Service Pack 2 (SP2) 和更新版本。
- 已安裝 Windows XP Media Center Edition 2005 KB900325 (Windows XP Media Center 版本 2005) 和 KB925766 (2006 年 10 月更新匯總) 。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | mfobjects.h (include Mfidl.h) |