IMFCaptureEngine::Initialize 方法 (mfcaptureengine.h)

初始化捕获引擎。

语法

HRESULT Initialize(
  [in]           IMFCaptureEngineOnEventCallback *pEventCallback,
  [in, optional] IMFAttributes                   *pAttributes,
  [in, optional] IUnknown                        *pAudioSource,
  [in, optional] IUnknown                        *pVideoSource
);

参数

[in] pEventCallback

指向 IMFCaptureEngineOnEventCallback 接口的指针。 调用方必须实现此接口。 捕获引擎使用此接口将异步事件发送到调用方。

[in, optional] pAttributes

指向 IMFAttributes 接口的 指针。 此参数可以为 NULL。

可以使用此参数来配置捕获引擎。 调用 MFCreateAttributes 以创建属性存储,然后设置以下任何属性。

[in, optional] pAudioSource

指定音频捕获设备的 IUnknown 指针。 此参数可以为 NULL。

如果在 pAttributes 中将 MF_CAPTURE_ENGINE_USE_VIDEO_DEVICE_ONLY 属性设置为 TRUE,则捕获引擎不使用音频设备,并且将忽略 pAudioSource 参数。

否则,如果 pAudioSourceNULL,捕获引擎将选择内置于 pVideoSource 指定的摄像机中的麦克风。 如果摄像机没有麦克风,捕获引擎会枚举系统上的音频捕获设备,并选择第一个设备。

若要替代默认音频设备,请将 pAudioSource 设置为设备的 IMFMediaSourceIMFActivate 指针。 有关详细信息,请参阅 Media Foundation 中的音频/视频捕获

[in, optional] pVideoSource

指定视频捕获设备的 IUnknown 指针。 此参数可以为 NULL。

如果在 pAttributes 中将 MF_CAPTURE_ENGINE_USE_AUDIO_DEVICE_ONLY 属性设置为 TRUE,则捕获引擎不使用视频设备,并且将忽略 pVideoSource 参数。

否则,如果 pVideoSourceNULL,捕获引擎将枚举系统上的视频捕获设备,并选择第一个设备。

若要替代默认视频设备,请将 pVideoSource 设置为设备的 IMFMediaSourceIMFActivate 指针。 有关详细信息,请参阅 枚举视频捕获设备

返回值

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

返回代码 说明
S_OK
成功。
MF_E_INVALIDREQUEST
已调用 Initialize 方法。
MF_E_NO_CAPTURE_DEVICES_AVAILABLE
没有可用的捕获设备。
MF_E_UNSUPPORTED_CAPTURE_DEVICE_PRESENT
系统上存在不受支持的捕获设备。 仅当为 pVideoSource 参数指定 NULL 时,才会返回此错误,指示系统应选取捕获设备,并且尚未附加受支持的捕获设备。 建议应用在返回此错误时向用户显示特定的不受支持的捕获设备消息,而不是常规故障消息。

注解

在使用捕获引擎之前,必须调用此方法一次。 第二次调用该方法将返回 MF_E_INVALIDREQUEST

此方法是异步方法。 如果该方法返回成功代码,调用方将通过 IMFCaptureEngineOnEventCallback::OnEvent 方法接收MF_CAPTURE_ENGINE_INITIALIZED事件。 方法成功后,该操作可能会异步失败。 如果是,则通过 OnEvent 方法传递错误代码。

要求

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

另请参阅

IMFCaptureEngine