多媒体流式处理对象和接口层次结构
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
注意
这些 API 已弃用。 应用程序应使用 示例抓取器 筛选器或实现自定义筛选器,以从 DirectShow 筛选器图中获取数据。
下图显示了多媒体流式处理中使用的对象层次结构。
多媒体流式处理体系结构定义了三种常规类型的对象:
- AMMultimediaStream 对象公开 IAMMultiMediaStream 接口。 在内部,此对象包装 DirectShow 筛选器图。
- 媒体流 对象公开 IMediaStream 接口,并且特定于数据。 AMMultimediaStream 对象包含一个或多个媒体流。
- 流示例 对象包含特定流的数据。
支持以下媒体流对象:
- 音频流。 公开 IAudioMediaStream 接口。
- DirectDraw 流。 表示呈现到 DirectDraw 图面的视频流。 公开 IDirectDrawMediaStream 接口。
- 媒体类型流。 表示任意数据。 公开 IAMMediaTypeStream 接口。
每个媒体流对象创建其自己的类型流示例对象:
- 音频流创建公开 IAudioStreamSample 接口的音频示例。
- DirectDraw 流创建 DirectDraw 示例,用于公开 IDirectDrawStreamSample 接口。
- 媒体类型流创建媒体类型示例,这些示例公开 IAMMediaTypeSample 接口。
下图显示了前面列出的接口的接口层次结构: