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