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