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 创建属性存储,然后设置以下任何属性。
- MF_CAPTURE_ENGINE_D3D_MANAGER
- MF_CAPTURE_ENGINE_DISABLE_DXVA
- MF_CAPTURE_ENGINE_DISABLE_HARDWARE_TRANSFORMS
- MF_CAPTURE_ENGINE_ENCODER_MFT_FIELDOFUSE_UNLOCK_Attribute
- MF_CAPTURE_ENGINE_EVENT_GENERATOR_GUID
- MF_CAPTURE_ENGINE_EVENT_STREAM_INDEX
- MF_CAPTURE_ENGINE_MEDIASOURCE_CONFIG
- MF_CAPTURE_ENGINE_RECORD_SINK_AUDIO_MAX_PROCESSED_SAMPLES
- MF_CAPTURE_ENGINE_RECORD_SINK_AUDIO_MAX_UNPROCESSED_SAMPLES
- MF_CAPTURE_ENGINE_RECORD_SINK_VIDEO_MAX_PROCESSED_SAMPLES
- MF_CAPTURE_ENGINE_RECORD_SINK_VIDEO_MAX_UNPROCESSED_SAMPLES
- MF_CAPTURE_ENGINE_USE_AUDIO_DEVICE_ONLY
- MF_CAPTURE_ENGINE_USE_VIDEO_DEVICE_ONLY
[in, optional] pAudioSource
指定音频捕获设备的 IUnknown 指针。 此参数可以为 NULL。
如果在 pAttributes 中将 MF_CAPTURE_ENGINE_USE_VIDEO_DEVICE_ONLY 属性设置为 TRUE,则捕获引擎不使用音频设备,并且 pAudioSource 参数将被忽略。
否则,如果 pAudioSource 为 NULL,捕获引擎会选择 内置于 pVideoSource 指定的摄像机中的麦克风。 如果摄像机没有麦克风,捕获引擎将枚举系统上的音频捕获设备,并选择第一个设备。
若要替代默认音频设备,请将 pAudioSource 设置为 设备的 IMFMediaSource 或 IMFActivate 指针。 有关详细信息,请参阅 Media Foundation 中的音频/视频捕获。
[in, optional] pVideoSource
指定视频捕获设备的 IUnknown 指针。 此参数可以为 NULL。
如果在 pAttributes 中将 MF_CAPTURE_ENGINE_USE_AUDIO_DEVICE_ONLY 属性设置为 TRUE,则捕获引擎不使用视频设备,并且将忽略 pVideoSource 参数。
否则,如果 pVideoSource 为 NULL,捕获引擎将枚举系统上的视频捕获设备,并选择第一个设备。
若要替代默认视频设备,请将 pVideoSource 设置为 设备的 IMFMediaSource 或 IMFActivate 指针。 有关详细信息,请参阅 枚举视频捕获设备。
返回值
此方法可以返回其中一个值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
已调用 Initialize 方法。 |
|
没有可用的捕获设备。 |
|
系统上存在不受支持的捕获设备。 仅当为 pVideoSource 参数指定 NULL 时,才会返回此错误,指示系统应选取捕获设备,并且尚未附加任何受支持的捕获设备。 如果返回此错误,建议应用向用户显示特定的不受支持的捕获设备消息,而不是常规失败消息。 |
注解
在使用捕获引擎之前,必须调用此方法一次。 再次调用 方法将返回 MF_E_INVALIDREQUEST。
此方法是异步方法。 如果方法返回成功代码,则调用方将通过 IMFCaptureEngineOnEventCallback::OnEvent 方法接收MF_CAPTURE_ENGINE_INITIALIZED事件。 方法成功后,操作可能会异步失败。 如果是这样,则通过 OnEvent 方法传达错误代码。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2012 [仅限桌面应用] |
目标平台 | Windows |
标头 | mfcaptureengine.h |