IMFMediaEngineClassFactory::CreateInstance 方法 (mfmediaengine.h)
创建媒体引擎的新实例。
语法
HRESULT CreateInstance(
[in] DWORD dwFlags,
[in] IMFAttributes *pAttr,
[out] IMFMediaEngine **ppPlayer
);
parameters
[in] dwFlags
MF_MEDIA_ENGINE_CREATEFLAGS枚举中的零个或多个标志的按位 OR。
[in] pAttr
指向属性存储的 IMFAttributes 接口的指针。
此参数指定媒体引擎的配置属性。 调用 MFCreateAttributes 来创建属性存储。 然后,从 媒体引擎属性列表中设置一个或多个属性。 有关详细信息,请参阅“备注”。
[out] ppPlayer
接收指向 IMFMediaEngine 接口的 指针。 调用方必须释放接口。
返回值
此方法可以返回其中一个值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
pAttr 中缺少必需的属性,或者使用了无效的属性组合。 |
注解
在调用此方法之前,请调用 MFStartup。
媒体引擎支持三种不同的模式:
“模式” | 说明 |
---|---|
帧服务器模式 |
在此模式下,媒体引擎将未压缩的视频帧传送到应用程序。 应用程序负责使用 Microsoft Direct3D 或任何其他呈现技术显示每个帧。
媒体引擎呈现音频;应用程序不负责音频呈现。 帧服务器模式是默认模式。 |
渲染模式 |
在此模式下,媒体引擎同时呈现音频和视频。 视频呈现到应用程序提供的窗口或 Microsoft DirectComposition 视觉对象。
若要启用呈现模式,请设置 MF_MEDIA_ENGINE_PLAYBACK_HWND 属性或 MF_MEDIA_ENGINE_PLAYBACK_VISUAL 属性。 |
音频模式 |
在此模式下,媒体引擎仅呈现音频,不呈现任何视频。
若要启用音频模式,请在 dwFlags 参数中设置MF_MEDIA_ENGINE_AUDIOONLY标志。 |
初始化属性
为 pAttr 参数定义了以下属性。 有些是必填的,有些是可选的,具体取决于所需的模式。功能 | 特性 | 帧服务器模式 | 渲染模式 | 音频模式 |
---|---|---|---|---|
事件回调 | MF_MEDIA_ENGINE_CALLBACK | 必需。 | 必需。 | 必需。 |
呈现器目标 | 下列类型作之一: 这些属性互斥。 设置其中任一属性会使媒体引擎进入呈现模式。 | 请勿设置。 | 必需。 | 请勿设置。 |
Direct3D 格式 | MF_MEDIA_ENGINE_VIDEO_OUTPUT_FORMAT | 必需。 | 可选。 | 请勿设置。 |
Microsoft DirectX Graphics Infrastructure (DXGI) 设备管理器 | MF_MEDIA_ENGINE_DXGI_MANAGER | 可选。 | 可选。 | 请勿设置。 |
媒体引擎扩展 | MF_MEDIA_ENGINE_EXTENSION | 可选。 | 可选。 | 可选。 |
内容保护 | 以下任何项: | 可选。 | 可选。 | 可选。 |
音频播放 | 以下任何项: | 可选。 | 可选。 | 可选。 |
Windows Phone 8
支持此 API。在手机上,媒体引擎仅支持帧服务器模式。 尝试在呈现模式或音频模式下初始化接口将失败。
要求
最低受支持的客户端 | Windows 8 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2012 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | mfmediaengine.h |