本主题介绍 Microsoft Media Foundation 中媒体源的对象模型。 媒体源必须实现两个对象:
- 一个演示描述符,描述源的内容,包括流的数量和每个流的格式。 有关演示文稿描述符的详细信息,请参阅 演示文稿描述符。
- 生成源数据的一个或多个媒体流。
在播放开始之前,源不会创建流。
媒体源接口
媒体源必须通过 QueryInterface公开以下接口。
接口 | 描述 |
---|---|
IMFMediaSource | 所有媒体源都是必需的。 |
IMFMediaEventGenerator | 所有媒体源都是必需的。 IMFMediaSource 接口继承此接口。 |
(可选)媒体源可以实现 IMFGetService 接口,并将以下任何接口实现为服务:
服务接口 | 描述 |
---|---|
IMFRateControl | 控制播放速率。 |
IMFRateSupport | 报告支持的播放速率范围。 |
IMFQualityAdvise | 使质量管理器能够调整音频或视频质量。 |
IMFMetadataProvider | 提供元数据。 |
如果媒体来源可以以正常速度(1.0)以外的速度播放,它应公开利率控制服务(IMFRateControl 和 IMFRateSupport)。 否则,假定源仅支持正常速度播放。 有关详细信息,请参阅 实现速率控制。
有关服务接口和 IMFGetService的详细信息,请参阅 服务接口。
媒体流接口
媒体流必须实现以下接口。
接口 | 描述 |
---|---|
IMFMediaStream | 所有媒体流都是必需的。 |
IMFMediaEventGenerator | 所有媒体流都是必需的。 IMFMediaStream 接口继承此接口。 |
目前没有为媒体流定义服务接口。
相关主题