iMediaSample 接口 (strmif.h)

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 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 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 strmif.h (包括 Dshow.h)