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 接口的 指针。 调用方必须释放接口。

返回值

此方法可以返回其中一个值。

返回代码 说明
S_OK
成功。
MF_E_ATTRIBUTENOTFOUND
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 必需。 必需。 必需。
呈现器目标 下列类型作之一:
MF_MEDIA_ENGINE_PLAYBACK_HWND
MF_MEDIA_ENGINE_PLAYBACK_VISUAL
这些属性互斥。 设置其中任一属性会使媒体引擎进入呈现模式。
请勿设置。 必需。 请勿设置。
Direct3D 格式 MF_MEDIA_ENGINE_VIDEO_OUTPUT_FORMAT 必需。 可选。 请勿设置。
Microsoft DirectX Graphics Infrastructure (DXGI) 设备管理器 MF_MEDIA_ENGINE_DXGI_MANAGER 可选。 可选。 请勿设置。
媒体引擎扩展 MF_MEDIA_ENGINE_EXTENSION 可选。 可选。 可选。
内容保护 以下任何项:
MF_MEDIA_ENGINE_OPM_HWND
MF_MEDIA_ENGINE_CONTENT_PROTECTION_FLAGS
MF_MEDIA_ENGINE_CONTENT_PROTECTION_MANAGER
可选。 可选。 可选。
音频播放 以下任何项:
MF_MEDIA_ENGINE_AUDIO_CATEGORY
MF_MEDIA_ENGINE_AUDIO_ENDPOINT_ROLE
可选。 可选。 可选。
 

Windows Phone 8

支持此 API。

在手机上,媒体引擎仅支持帧服务器模式。 尝试在呈现模式或音频模式下初始化接口将失败。

要求

   
最低受支持的客户端 Windows 8 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2012 [桌面应用 |UWP 应用]
目标平台 Windows
标头 mfmediaengine.h

另请参阅

IMFMediaEngineClassFactory